Messages in this thread | | | Subject | Re: [PATCH V2] f2fs: fix the panic in do_checkpoint() | From | Chao Yu <> | Date | Mon, 17 Feb 2020 14:37:17 +0800 |
| |
On 2020/2/17 11:43, Sahitya Tummala wrote: > There could be a scenario where f2fs_sync_meta_pages() will not > ensure that all F2FS_DIRTY_META pages are submitted for IO. Thus, > resulting in the below panic in do_checkpoint() - > > f2fs_bug_on(sbi, get_pages(sbi, F2FS_DIRTY_META) && > !f2fs_cp_error(sbi)); > > This can happen in a low-memory condition, where shrinker could > also be doing the writepage operation (stack shown below) > at the same time when checkpoint is running on another core. > > schedule > down_write > f2fs_submit_page_write -> by this time, this page in page cache is tagged > as PAGECACHE_TAG_WRITEBACK and PAGECACHE_TAG_DIRTY > is cleared, due to which f2fs_sync_meta_pages() > cannot sync this page in do_checkpoint() path. > f2fs_do_write_meta_page > __f2fs_write_meta_page > f2fs_write_meta_page > shrink_page_list > shrink_inactive_list > shrink_node_memcg > shrink_node > kswapd > > Signed-off-by: Sahitya Tummala <stummala@codeaurora.org>
Looks good to me.
Reviewed-by: Chao Yu <yuchao0@huawei.com>
BTW, I can't apply this based dev branch of Jaegeuk's tree, could you rebase it?
Thanks,
| |