mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
* [question] Panic in dax_writeback_one
@ 2021-03-11  7:48 chenjun (AM)
  2021-03-11 12:19 ` Matthew Wilcox
  0 siblings, 1 reply; 7+ messages in thread
From: chenjun (AM) @ 2021-03-11  7:48 UTC (permalink / raw)
  To: linux-kernel, linux-fsdevel
  Cc: Dan Williams, Jan Kara, Xiangrui (Euler), lizhe (Y),
	yangerkun, zhangyi (F)

Hi

I write a driver to simulate memory as a block device (like a ramdisk). 
and I hope the memory used would not be observed by kernel, becasue of 
the struct page will take many memory.

When I mount ext2 with dax on my ramdisk. Panic will happen when fsync.
Call trace:
  dax_writeback_one+0x330/0x3e4
  dax_writeback_mapping_range+0x15c/0x318
  ext2_dax_writepages+0x38/0x44
....

static int dax_writeback_one(struct xa_state *xas, struct dax_device 
*dax_dev, struct address_space *mapping, void *entry)
----dax_flush(dax_dev, page_address(pfn_to_page(pfn)), count * PAGE_SIZE);
The pfn is returned by the driver. In my case, the pfn does not have
struct page. so pfn_to_page(pfn) return a wrong address.

I noticed the following changes may related to my problem:
1. Before 3fe0791c295cfd3cd735de7a32cc0780949c009f (dax: store pfns in 
the radix), the radix tree stroes sectors. address which would be 
flushed is got from driver by passing sector.
And the commit assume that all pfn have struct page.

2. CONFIG_FS_DAX_LIMITED (Selected by DCSSBLK [=n] && BLK_DEV [=y] && 
S390 && BLOCK [=y]) is added to avoid access struct page of pfn.

Does anyone have any idea about my problem.

-- 
Regards
Chen Jun

^ permalink raw reply	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2021-03-17  6:46 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-03-11  7:48 [question] Panic in dax_writeback_one chenjun (AM)
2021-03-11 12:19 ` Matthew Wilcox
2021-03-11 17:25   ` Dan Williams
2021-03-17  2:59     ` chenjun (AM)
2021-03-17  4:55       ` Dan Williams
2021-03-17  6:45         ` chenjun (AM)
2021-03-12  2:40   ` chenjun (AM)

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

all inboxes | Powered by JetHome®