diff options
| author | Jiucheng Xu <jiucheng.xu@amlogic.com> | 2026-03-11 17:11:31 +0800 |
|---|---|---|
| committer | Gao Xiang <hsiangkao@linux.alibaba.com> | 2026-03-19 00:24:21 +0800 |
| commit | c23df30915f83e7257c8625b690a1cece94142a0 (patch) | |
| tree | 3e39aeac4663980965568c3047e765f3f7793061 /include/asm-xtensa/git@git.tavy.me:linux.git | |
| parent | eade54040384f54b7fb330e4b0975c5734850b3c (diff) | |
erofs: add GFP_NOIO in the bio completion if needed
The bio completion path in the process context (e.g. dm-verity)
will directly call into decompression rather than trigger another
workqueue context for minimal scheduling latencies, which can
then call vm_map_ram() with GFP_KERNEL.
Due to insufficient memory, vm_map_ram() may generate memory
swapping I/O, which can cause submit_bio_wait to deadlock
in some scenarios.
Trimmed down the call stack, as follows:
f2fs_submit_read_io
submit_bio //bio_list is initialized.
mmc_blk_mq_recovery
z_erofs_endio
vm_map_ram
__pte_alloc_kernel
__alloc_pages_direct_reclaim
shrink_folio_list
__swap_writepage
submit_bio_wait //bio_list is non-NULL, hang!!!
Use memalloc_noio_{save,restore}() to wrap up this path.
Reviewed-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Signed-off-by: Jiucheng Xu <jiucheng.xu@amlogic.com>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Gao Xiang <hsiangkao@linux.alibaba.com>
Diffstat (limited to 'include/asm-xtensa/git@git.tavy.me:linux.git')
0 files changed, 0 insertions, 0 deletions
