Re: [PATCH] zram: panic when use ext4 over zram

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



> I honestly don't know...
> 
> What is changing the page under write()?  If something is modifying
> page's content in parallel with zram's write() then you can't really
> use zram, if the content is changing concurrently with zram's compression
> then I really don't see how it would be able to decompress it later
> and what would it decompress to (some mix of stale and new data?).

I am not familiar with file systems and lzro, so I dumped the page owner of the modified page. 
The function stack of most page allocated is as follows:

[   46.560092] page_owner tracks the page as allocated
[   46.560101] page last allocated via order 0, migratetype Movable, gfp_mask 0x148c48(GFP_NOFS|__GFP_NOFAIL|__GFP_COMP|__GFP_HARDWALL|__GFP_MOVABLE), pid 1769, tgid 1372 (a.out), ts 45588110160, free_ts 45123127760
[   46.560126]  prep_new_page+0xa8/0x10c
[   46.560143]  get_page_from_freelist+0xa44/0x16d0
[   46.560160]  __alloc_pages_noprof+0x150/0x290
[   46.560177]  alloc_pages_mpol_noprof+0x88/0x23c
[   46.560195]  alloc_pages_noprof+0x4c/0x7c
[   46.560234]  folio_alloc_noprof+0x14/0x64
[   46.560254]  filemap_alloc_folio_noprof+0x100/0x14c
[   46.560272]  __filemap_get_folio+0x21c/0x38c
[   46.560290]  bdev_getblk+0xd0/0x2b4
[   46.560304]  __ext4_get_inode_loc+0x11c/0x53c
[   46.560320]  ext4_get_inode_loc+0x44/0xb0
[   46.560337]  ext4_reserve_inode_write+0x40/0xf0
[   46.560354]  __ext4_mark_inode_dirty+0x4c/0x1f0
[   46.560370]  ext4_ext_tree_init+0x40/0x4c
[   46.560388]  __ext4_new_inode+0x790/0x13b8
[   46.560406]  ext4_create+0xdc/0x1d0

and other list this:

[   47.683962] page_owner tracks the page as allocated
[   47.684012] page last allocated via order 0, migratetype Unmovable, gfp_mask 0x148c40(GFP_NOFS|__GFP_NOFAIL|__GFP_COMP|__GFP_HARDWALL), pid 1309, tgid 970 (a.out), ts 44091572544, free_ts 0
[   47.684056]  prep_new_page+0xa8/0x10c
[   47.684090]  get_page_from_freelist+0xa44/0x16d0
[   47.684109]  __alloc_pages_noprof+0x150/0x290
[   47.684127]  alloc_pages_mpol_noprof+0x88/0x23c
[   47.684148]  alloc_pages_noprof+0x4c/0x7c
[   47.684166]  folio_alloc_noprof+0x14/0x64
[   47.684184]  filemap_alloc_folio_noprof+0x100/0x14c
[   47.684205]  __filemap_get_folio+0x21c/0x38c
[   47.684223]  bdev_getblk+0xd0/0x2b4
[   47.684240]  ext4_getblk+0xac/0x300
[   47.684258]  ext4_bread+0x14/0xe4
[   47.684274]  ext4_append+0x90/0x1cc
[   47.684293]  do_split+0x88/0x9c4
[   47.684307]  make_indexed_dir+0x580/0x688
[   47.684322]  ext4_add_entry+0x37c/0x420
[   47.684337]  ext4_add_nondir+0x38/0x11c

It look like only the file system metadata has been modified.I'm not sure.




[Index of Archives]     [Kernel Archive]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]

  Powered by Linux