* Re: [PATCH] mm/vmalloc: fix vmap_purge_lock livelock under memory pressure [not found] <20260824095020.1225189-1-ye.liu@linux.dev> @ 2026-08-24 13:19 ` Uladzislau Rezki 2026-08-25 1:04 ` Ye Liu 0 siblings, 1 reply; 5+ messages in thread From: Uladzislau Rezki @ 2026-08-24 13:19 UTC (permalink / raw) To: Ye Liu; +Cc: Andrew Morton, Uladzislau Rezki, Ye Liu, linux-mm, linux-kernel On Mon, Aug 24, 2026 at 05:50:19PM +0800, Ye Liu wrote: > From: Ye Liu <liuye@kylinos.cn> > > The vmap_purge_lock mutex can be held for an extended period by > __purge_vmap_area_lazy() which calls flush_work() to wait for > purge_vmap_node workers while holding the lock. Under memory > pressure, those workers may themselves be blocked in direct > reclaim trying to acquire the same lock via the > vmap_node_shrink_scan() shrinker callback, creating a circular > dependency that deadlocks the entire system. > > Two changes: > > 1. vmap_node_shrink_scan(): replace blocking guard(mutex) with > mutex_trylock(). This is a shrinker that only decays the vmap > pool and returns SHRINK_STOP without freeing memory; skipping a > decay cycle when the lock is contended is harmless and prevents > tasks from piling up on the mutex in the direct reclaim path. > > 2. __purge_vmap_area_lazy(): purge all vmap nodes inline instead of > scheduling purge_vmap_node via workqueue and calling flush_work() > while holding vmap_purge_lock. The workqueue dispatch + flush > pattern under a mutex is the deadlock trigger: if no free worker > threads are available (all blocked on the same lock), flush_work() > never returns and the lock is held indefinitely. > > Fixes: 7679ba6b36db ("mm: vmalloc: add a shrinker to drain vmap pools") > Signed-off-by: Ye Liu <liuye@kylinos.cn> > --- > mm/vmalloc.c | 51 +++++++++++++++++++++------------------------------ > 1 file changed, 21 insertions(+), 30 deletions(-) > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index bea9f76ed7e7..41443708d22d 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -2358,7 +2358,6 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, > bool full_pool_decay) > { > unsigned long nr_purged_areas = 0; > - unsigned int nr_purge_helpers; > static cpumask_t purge_nodes; > unsigned int nr_purge_nodes; > struct vmap_node *vn; > @@ -2397,36 +2396,17 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, > if (nr_purge_nodes > 0) { > flush_tlb_kernel_range(start, end); > > - /* One extra worker is per a lazy_max_pages() full set minus one. */ > - nr_purge_helpers = atomic_long_read(&vmap_lazy_nr) / lazy_max_pages(); > - nr_purge_helpers = clamp(nr_purge_helpers, 1U, nr_purge_nodes) - 1; > - > - for_each_cpu(i, &purge_nodes) { > - vn = &vmap_nodes[i]; > - > - if (nr_purge_helpers > 0) { > - INIT_WORK(&vn->purge_work, purge_vmap_node); > - > - if (cpumask_test_cpu(i, cpu_online_mask)) > - schedule_work_on(i, &vn->purge_work); > - else > - schedule_work(&vn->purge_work); > - > - nr_purge_helpers--; > - } else { > - vn->purge_work.func = NULL; > - purge_vmap_node(&vn->purge_work); > - nr_purged_areas += vn->nr_purged; > - } > - } > - > + /* > + * Purge all nodes inline. Do not schedule_work() and > + * flush_work() here: flush_work() while holding > + * vmap_purge_lock can deadlock if the worker pool is > + * starved (e.g. all workers blocked on this same lock > + * in the direct reclaim path via vmap_node_shrink_scan). > + */ > for_each_cpu(i, &purge_nodes) { > vn = &vmap_nodes[i]; > - > - if (vn->purge_work.func) { > - flush_work(&vn->purge_work); > - nr_purged_areas += vn->nr_purged; > - } > + purge_vmap_node(&vn->purge_work); > + nr_purged_areas += vn->nr_purged; > } > } > > @@ -5519,10 +5499,21 @@ vmap_node_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) > { > struct vmap_node *vn; > > - guard(mutex)(&vmap_purge_lock); > + /* > + * This shrinker is invoked from direct reclaim path where memory > + * pressure is already high. Blocking on vmap_purge_lock here can > + * cause a pile-up of tasks all waiting for the same mutex while > + * the lock holder may itself be blocked in flush_work() waiting for > + * a worker that is stuck in the same reclaim path. Use trylock to > + * avoid this; skipping a pool decay cycle is harmless. > + */ > + if (!mutex_trylock(&vmap_purge_lock)) > + return SHRINK_STOP; > + > for_each_vmap_node(vn) > decay_va_pool_node(vn, true); > > + mutex_unlock(&vmap_purge_lock); > return SHRINK_STOP; > } > > -- > 2.25.1 > Have you seen any report about the problem you described? -- Uladzislau Rezki ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mm/vmalloc: fix vmap_purge_lock livelock under memory pressure 2026-08-24 13:19 ` [PATCH] mm/vmalloc: fix vmap_purge_lock livelock under memory pressure Uladzislau Rezki @ 2026-08-25 1:04 ` Ye Liu 2026-08-25 17:40 ` Uladzislau Rezki 0 siblings, 1 reply; 5+ messages in thread From: Ye Liu @ 2026-08-25 1:04 UTC (permalink / raw) To: Uladzislau Rezki; +Cc: Andrew Morton, Ye Liu, linux-mm, linux-kernel 在 2026/8/24 21:19, Uladzislau Rezki 写道: > On Mon, Aug 24, 2026 at 05:50:19PM +0800, Ye Liu wrote: >> From: Ye Liu <liuye@kylinos.cn> >> >> The vmap_purge_lock mutex can be held for an extended period by >> __purge_vmap_area_lazy() which calls flush_work() to wait for >> purge_vmap_node workers while holding the lock. Under memory >> pressure, those workers may themselves be blocked in direct >> reclaim trying to acquire the same lock via the >> vmap_node_shrink_scan() shrinker callback, creating a circular >> dependency that deadlocks the entire system. >> >> Two changes: >> >> 1. vmap_node_shrink_scan(): replace blocking guard(mutex) with >> mutex_trylock(). This is a shrinker that only decays the vmap >> pool and returns SHRINK_STOP without freeing memory; skipping a >> decay cycle when the lock is contended is harmless and prevents >> tasks from piling up on the mutex in the direct reclaim path. >> >> 2. __purge_vmap_area_lazy(): purge all vmap nodes inline instead of >> scheduling purge_vmap_node via workqueue and calling flush_work() >> while holding vmap_purge_lock. The workqueue dispatch + flush >> pattern under a mutex is the deadlock trigger: if no free worker >> threads are available (all blocked on the same lock), flush_work() >> never returns and the lock is held indefinitely. >> >> Fixes: 7679ba6b36db ("mm: vmalloc: add a shrinker to drain vmap pools") >> Signed-off-by: Ye Liu <liuye@kylinos.cn> >> --- >> mm/vmalloc.c | 51 +++++++++++++++++++++------------------------------ >> 1 file changed, 21 insertions(+), 30 deletions(-) >> >> diff --git a/mm/vmalloc.c b/mm/vmalloc.c >> index bea9f76ed7e7..41443708d22d 100644 >> --- a/mm/vmalloc.c >> +++ b/mm/vmalloc.c >> @@ -2358,7 +2358,6 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, >> bool full_pool_decay) >> { >> unsigned long nr_purged_areas = 0; >> - unsigned int nr_purge_helpers; >> static cpumask_t purge_nodes; >> unsigned int nr_purge_nodes; >> struct vmap_node *vn; >> @@ -2397,36 +2396,17 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, >> if (nr_purge_nodes > 0) { >> flush_tlb_kernel_range(start, end); >> >> - /* One extra worker is per a lazy_max_pages() full set minus one. */ >> - nr_purge_helpers = atomic_long_read(&vmap_lazy_nr) / lazy_max_pages(); >> - nr_purge_helpers = clamp(nr_purge_helpers, 1U, nr_purge_nodes) - 1; >> - >> - for_each_cpu(i, &purge_nodes) { >> - vn = &vmap_nodes[i]; >> - >> - if (nr_purge_helpers > 0) { >> - INIT_WORK(&vn->purge_work, purge_vmap_node); >> - >> - if (cpumask_test_cpu(i, cpu_online_mask)) >> - schedule_work_on(i, &vn->purge_work); >> - else >> - schedule_work(&vn->purge_work); >> - >> - nr_purge_helpers--; >> - } else { >> - vn->purge_work.func = NULL; >> - purge_vmap_node(&vn->purge_work); >> - nr_purged_areas += vn->nr_purged; >> - } >> - } >> - >> + /* >> + * Purge all nodes inline. Do not schedule_work() and >> + * flush_work() here: flush_work() while holding >> + * vmap_purge_lock can deadlock if the worker pool is >> + * starved (e.g. all workers blocked on this same lock >> + * in the direct reclaim path via vmap_node_shrink_scan). >> + */ >> for_each_cpu(i, &purge_nodes) { >> vn = &vmap_nodes[i]; >> - >> - if (vn->purge_work.func) { >> - flush_work(&vn->purge_work); >> - nr_purged_areas += vn->nr_purged; >> - } >> + purge_vmap_node(&vn->purge_work); >> + nr_purged_areas += vn->nr_purged; >> } >> } >> >> @@ -5519,10 +5499,21 @@ vmap_node_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) >> { >> struct vmap_node *vn; >> >> - guard(mutex)(&vmap_purge_lock); >> + /* >> + * This shrinker is invoked from direct reclaim path where memory >> + * pressure is already high. Blocking on vmap_purge_lock here can >> + * cause a pile-up of tasks all waiting for the same mutex while >> + * the lock holder may itself be blocked in flush_work() waiting for >> + * a worker that is stuck in the same reclaim path. Use trylock to >> + * avoid this; skipping a pool decay cycle is harmless. >> + */ >> + if (!mutex_trylock(&vmap_purge_lock)) >> + return SHRINK_STOP; >> + >> for_each_vmap_node(vn) >> decay_va_pool_node(vn, true); >> >> + mutex_unlock(&vmap_purge_lock); >> return SHRINK_STOP; >> } >> >> -- >> 2.25.1 >> > Have you seen any report about the problem you described? > Our testing team discovered the issue during testing with syzkaller on kernel version 6.6.89. The relevant warnings are shown below. INFO: task kworker/u80:6:141 blocked for more than 143 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kworker/u80:6 state:D stack:0 pid:141 tgid:141 ppid:2 flags:0x00004000 Workqueue: events_unbound call_usermodehelper_exec_work Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 INFO: task syz-executor.0:37820 blocked for more than 143 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz-executor.0 state:D stack:0 pid:37820 tgid:37820 ppid:1 flags:0x00000004 Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 pagetable_alloc_noprof root/klinux/./include/linux/mm.h:2982 [inline] __pud_alloc_one_noprof root/klinux/./include/asm-generic/pgalloc.h:174 [inline] pud_alloc_one_noprof root/klinux/./include/asm-generic/pgalloc.h:195 [inline] __pud_alloc+0x40/0x650 root/klinux/mm/memory.c:6222 pud_alloc root/klinux/./include/linux/mm.h:2939 [inline] copy_pud_range root/klinux/mm/memory.c:1270 [inline] copy_p4d_range+0x95e/0xb70 root/klinux/mm/memory.c:1314 copy_page_range+0x432/0xa30 root/klinux/mm/memory.c:1408 dup_mmap+0x1127/0x1ef0 root/klinux/kernel/fork.c:773 dup_mm+0x93/0x4e0 root/klinux/kernel/fork.c:1722 copy_mm root/klinux/kernel/fork.c:1781 [inline] copy_process+0x2c89/0x57d0 root/klinux/kernel/fork.c:2436 kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 __do_sys_clone+0xcf/0x120 root/klinux/kernel/fork.c:2992 do_syscall_x64 root/klinux/arch/x86/entry/common.c:51 [inline] do_syscall_64+0x74/0x360 root/klinux/arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x76/0xe0 RIP: 0033:0x45d778 RSP: 002b:00007ffc4d846860 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000000000045d778 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000013782980 R10: 0000000013782c50 R11: 0000000000000246 R12: 0000000000000000 R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000000 INFO: task syz-executor.10:56553 blocked for more than 143 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz-executor.10 state:D stack:0 pid:56553 tgid:56553 ppid:1 flags:0x00000004 Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 __do_sys_clone+0xcf/0x120 root/klinux/kernel/fork.c:2992 do_syscall_x64 root/klinux/arch/x86/entry/common.c:51 [inline] do_syscall_64+0x74/0x360 root/klinux/arch/x86/entry/common.c:81 entry_SYSCALL_64_after_hwframe+0x76/0xe0 RIP: 0033:0x45d778 RSP: 002b:00007ffc6a4dad70 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000000000045d778 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 RBP: 0000000000000000 R08: 0000000000000000 R09: 000000002d906980 R10: 000000002d906c50 R11: 0000000000000246 R12: 0000000000000000 R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 INFO: task kworker/12:13:56977 blocked for more than 144 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kworker/12:13 state:D stack:0 pid:56977 tgid:56977 ppid:2 flags:0x00004000 Workqueue: events drain_vmap_area_work Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_timeout+0x268/0x2b0 root/klinux/kernel/time/timer.c:2142 do_wait_for_common root/klinux/kernel/sched/completion.c:95 [inline] __wait_for_common+0x3ea/0x600 root/klinux/kernel/sched/completion.c:116 __flush_work+0xf4/0x180 root/klinux/kernel/workqueue.c:4125 __purge_vmap_area_lazy+0x8e5/0xcf0 root/klinux/mm/vmalloc.c:2324 drain_vmap_area_work+0x2c/0x40 root/klinux/mm/vmalloc.c:2349 process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 INFO: task kdamond.0:66163 blocked for more than 144 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kdamond.0 state:D stack:0 pid:66163 tgid:66163 ppid:2 flags:0x00004000 Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 alloc_slab_page root/klinux/mm/slub.c:2315 [inline] allocate_slab+0x27a/0x3f0 root/klinux/mm/slub.c:2485 ___slab_alloc+0x889/0x1060 root/klinux/mm/slub.c:3727 __slab_alloc.constprop.0+0x52/0xa0 root/klinux/mm/slub.c:3817 __slab_alloc_node root/klinux/mm/slub.c:3870 [inline] slab_alloc_node root/klinux/mm/slub.c:4031 [inline] kmem_cache_alloc_noprof+0x385/0x3e0 root/klinux/mm/slub.c:4050 damon_new_region+0x29/0x1a0 root/klinux/mm/damon/core.c:124 damon_va_evenly_split_region+0x1f8/0x2c0 root/klinux/mm/damon/vaddr.c:85 __damon_va_init_regions root/klinux/mm/damon/vaddr.c:271 [inline] damon_va_init+0x2b5/0x470 root/klinux/mm/damon/vaddr.c:283 kdamond_fn+0x289/0x1240 root/klinux/mm/damon/core.c:1432 kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 INFO: task kworker/u80:5:67724 blocked for more than 144 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kworker/u80:5 state:D stack:0 pid:67724 tgid:67724 ppid:2 flags:0x00004000 Workqueue: events_unbound call_usermodehelper_exec_work Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 INFO: task kworker/u80:9:69412 blocked for more than 144 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:kworker/u80:9 state:D stack:0 pid:69412 tgid:69412 ppid:2 flags:0x00004000 Workqueue: events_unbound call_usermodehelper_exec_work Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 INFO: task syz-executor.18:73039 blocked for more than 144 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz-executor.18 state:D stack:0 pid:73039 tgid:73039 ppid:1 flags:0x00004004 Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 folio_prealloc root/klinux/mm/memory.c:1062 [inline] wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 RIP: 0033:0x45d8e1 RSP: 002b:00007ffd015d5e10 EFLAGS: 00010246 RAX: 000000000000003b RBX: 0000000000000000 RCX: 000000000045d778 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000701d980 R10: 000000000701dc50 R11: 0000000000000246 R12: 000000000000003b R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000000 INFO: task syz-executor.13:74790 blocked for more than 144 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz-executor.13 state:D stack:0 pid:74790 tgid:74790 ppid:1 flags:0x00000004 Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 folio_prealloc root/klinux/mm/memory.c:1062 [inline] wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 RIP: 0033:0x45d8e1 RSP: 002b:00007ffe18ac7000 EFLAGS: 00010246 RAX: 0000000000000038 RBX: 0000000000000000 RCX: 000000000045d778 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000eb5f980 R10: 000000000eb5fc50 R11: 0000000000000246 R12: 0000000000000038 R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 INFO: task syz-executor.5:78550 blocked for more than 144 seconds. Tainted: G S ------- ---- 6.6.89+ #931 "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. task:syz-executor.5 state:D stack:0 pid:78550 tgid:78550 ppid:1 flags:0x00000004 Call Trace: context_switch root/klinux/kernel/sched/core.c:5346 [inline] __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 shrink_zones root/klinux/mm/vmscan.c:6175 [inline] do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 folio_prealloc root/klinux/mm/memory.c:1062 [inline] wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 RIP: 0033:0x45d8e1 RSP: 002b:00007fff9b912230 EFLAGS: 00010246 RAX: 0000000000000019 RBX: 0000000000000000 RCX: 000000000045d778 RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000cd3c980 R10: 000000000cd3cc50 R11: 0000000000000246 R12: 0000000000000019 R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings Showing all locks held in the system: 2 locks held by kthreadd/2: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 4 locks held by kworker/u80:6/141: #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 #1: ffff8881053cfd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 1 lock held by khungtaskd/155: #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire root/klinux/./include/linux/rcupdate.h:334 [inline] #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock root/klinux/./include/linux/rcupdate.h:786 [inline] #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x75/0x340 root/klinux/kernel/locking/lockdep.c:6721 2 locks held by bash/957: #0: ffff88800310d0a8 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x29/0x80 root/klinux/drivers/tty/tty_ldisc.c:243 #1: ffffc900039852f8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xd55/0x1230 root/klinux/drivers/tty/n_tty.c:2217 5 locks held by syz-executor.0/37820: #0: ffffffff8b511780 (dup_mmap_sem){++++}-{0:0}, at: dup_mmap+0xbe/0x1ef0 root/klinux/kernel/fork.c:668 #1: ffff888106b396e8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_write_lock_killable root/klinux/./include/linux/mmap_lock.h:124 [inline] #1: ffff888106b396e8 (&mm->mmap_lock){++++}-{3:3}, at: dup_mmap+0xdc/0x1ef0 root/klinux/kernel/fork.c:669 #2: ffff88801ff62be8 (&mm->mmap_lock/1){+.+.}-{3:3}, at: mmap_write_lock_nested root/klinux/./include/linux/mmap_lock.h:115 [inline] #2: ffff88801ff62be8 (&mm->mmap_lock/1){+.+.}-{3:3}, at: dup_mmap+0x125/0x1ef0 root/klinux/kernel/fork.c:678 #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #4: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #4: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 2 locks held by bash/41651: #0: ffff88801f8cb8a8 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x29/0x80 root/klinux/drivers/tty/tty_ldisc.c:243 #1: ffffc900001fd2f8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xd55/0x1230 root/klinux/drivers/tty/n_tty.c:2217 2 locks held by syz-executor.10/56553: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by kworker/12:13/56977: #0: ffff88810419cb58 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 #1: ffff88804264fd80 (drain_vmap_work){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: drain_vmap_area_work+0x1c/0x40 root/klinux/mm/vmalloc.c:2348 2 locks held by kdamond.0/66163: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 4 locks held by kworker/u80:5/67724: #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 #1: ffff88804664fd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 4 locks held by kworker/u80:9/69412: #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 #1: ffff8880346afd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.18/73039: #0: ffff888048652940 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff888048652940 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.13/74790: #0: ffff88803e37eeb8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff88803e37eeb8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.5/78550: #0: ffff88801f4310e8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff88801f4310e8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.26/80991: #0: ffff88801b3c6068 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_lock root/klinux/./include/linux/mmap_lock.h:146 [inline] #0: ffff88801b3c6068 (&mm->mmap_lock){++++}-{3:3}, at: __mm_populate+0x220/0x360 root/klinux/mm/gup.c:2170 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 4 locks held by syz-executor.5/80992: #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: get_signal+0x18d9/0x1a60 root/klinux/kernel/signal.c:2915 #1: ffff888001a29818 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: inode_lock root/klinux/./include/linux/fs.h:828 [inline] #1: ffff888001a29818 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: generic_file_write_iter+0x91/0x2f0 root/klinux/mm/filemap.c:4181 #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 2 locks held by syz-executor.22/81067: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 2 locks held by syz-executor.31/81012: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 2 locks held by syz-executor.31/81059: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.23/81024: #0: ffff88804a3aa080 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff88804a3aa080 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 2 locks held by syz-executor.23/81030: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.27/81031: #0: ffff88802008cb70 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff88802008cb70 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 2 locks held by syz-executor.30/81070: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 4 locks held by syz-executor.28/81036: #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: filename_create+0xf9/0x4c0 root/klinux/fs/namei.c:3928 #1: ffff88817b041270 (&sb->s_type->i_mutex_key/1){+.+.}-{3:3}, at: inode_lock_nested root/klinux/./include/linux/fs.h:863 [inline] #1: ffff88817b041270 (&sb->s_type->i_mutex_key/1){+.+.}-{3:3}, at: filename_create+0x1a1/0x4c0 root/klinux/fs/namei.c:3935 #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.12/81086: #0: ffff88801f2a45f8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff88801f2a45f8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 4 locks held by syz-executor.22/81082: #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: get_signal+0x18d9/0x1a60 root/klinux/kernel/signal.c:2915 #1: ffff88805c122910 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: inode_lock root/klinux/./include/linux/fs.h:828 [inline] #1: ffff88805c122910 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: generic_file_write_iter+0x91/0x2f0 root/klinux/mm/filemap.c:4181 #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.17/81084: #0: ffff888084e01430 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff888084e01430 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.21/81088: #0: ffff88801cde23c8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff88801cde23c8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.5/81089: #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.13/81090: #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.18/81091: #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 2 locks held by syz-executor.7/81096: #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 3 locks held by syz-executor.16/81095: #0: ffff88801de15e08 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] #0: ffff88801de15e08 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 ============================================= > -- > Uladzislau Rezki -- Thanks, Ye Liu ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mm/vmalloc: fix vmap_purge_lock livelock under memory pressure 2026-08-25 1:04 ` Ye Liu @ 2026-08-25 17:40 ` Uladzislau Rezki 2026-08-26 5:39 ` Dev Jain 0 siblings, 1 reply; 5+ messages in thread From: Uladzislau Rezki @ 2026-08-25 17:40 UTC (permalink / raw) To: Ye Liu; +Cc: Uladzislau Rezki, Andrew Morton, Ye Liu, linux-mm, linux-kernel On Tue, Aug 25, 2026 at 09:04:24AM +0800, Ye Liu wrote: > > > 在 2026/8/24 21:19, Uladzislau Rezki 写道: > > On Mon, Aug 24, 2026 at 05:50:19PM +0800, Ye Liu wrote: > >> From: Ye Liu <liuye@kylinos.cn> > >> > >> The vmap_purge_lock mutex can be held for an extended period by > >> __purge_vmap_area_lazy() which calls flush_work() to wait for > >> purge_vmap_node workers while holding the lock. Under memory > >> pressure, those workers may themselves be blocked in direct > >> reclaim trying to acquire the same lock via the > >> vmap_node_shrink_scan() shrinker callback, creating a circular > >> dependency that deadlocks the entire system. > >> > >> Two changes: > >> > >> 1. vmap_node_shrink_scan(): replace blocking guard(mutex) with > >> mutex_trylock(). This is a shrinker that only decays the vmap > >> pool and returns SHRINK_STOP without freeing memory; skipping a > >> decay cycle when the lock is contended is harmless and prevents > >> tasks from piling up on the mutex in the direct reclaim path. > >> > >> 2. __purge_vmap_area_lazy(): purge all vmap nodes inline instead of > >> scheduling purge_vmap_node via workqueue and calling flush_work() > >> while holding vmap_purge_lock. The workqueue dispatch + flush > >> pattern under a mutex is the deadlock trigger: if no free worker > >> threads are available (all blocked on the same lock), flush_work() > >> never returns and the lock is held indefinitely. > >> > >> Fixes: 7679ba6b36db ("mm: vmalloc: add a shrinker to drain vmap pools") > >> Signed-off-by: Ye Liu <liuye@kylinos.cn> > >> --- > >> mm/vmalloc.c | 51 +++++++++++++++++++++------------------------------ > >> 1 file changed, 21 insertions(+), 30 deletions(-) > >> > >> diff --git a/mm/vmalloc.c b/mm/vmalloc.c > >> index bea9f76ed7e7..41443708d22d 100644 > >> --- a/mm/vmalloc.c > >> +++ b/mm/vmalloc.c > >> @@ -2358,7 +2358,6 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, > >> bool full_pool_decay) > >> { > >> unsigned long nr_purged_areas = 0; > >> - unsigned int nr_purge_helpers; > >> static cpumask_t purge_nodes; > >> unsigned int nr_purge_nodes; > >> struct vmap_node *vn; > >> @@ -2397,36 +2396,17 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, > >> if (nr_purge_nodes > 0) { > >> flush_tlb_kernel_range(start, end); > >> > >> - /* One extra worker is per a lazy_max_pages() full set minus one. */ > >> - nr_purge_helpers = atomic_long_read(&vmap_lazy_nr) / lazy_max_pages(); > >> - nr_purge_helpers = clamp(nr_purge_helpers, 1U, nr_purge_nodes) - 1; > >> - > >> - for_each_cpu(i, &purge_nodes) { > >> - vn = &vmap_nodes[i]; > >> - > >> - if (nr_purge_helpers > 0) { > >> - INIT_WORK(&vn->purge_work, purge_vmap_node); > >> - > >> - if (cpumask_test_cpu(i, cpu_online_mask)) > >> - schedule_work_on(i, &vn->purge_work); > >> - else > >> - schedule_work(&vn->purge_work); > >> - > >> - nr_purge_helpers--; > >> - } else { > >> - vn->purge_work.func = NULL; > >> - purge_vmap_node(&vn->purge_work); > >> - nr_purged_areas += vn->nr_purged; > >> - } > >> - } > >> - > >> + /* > >> + * Purge all nodes inline. Do not schedule_work() and > >> + * flush_work() here: flush_work() while holding > >> + * vmap_purge_lock can deadlock if the worker pool is > >> + * starved (e.g. all workers blocked on this same lock > >> + * in the direct reclaim path via vmap_node_shrink_scan). > >> + */ > >> for_each_cpu(i, &purge_nodes) { > >> vn = &vmap_nodes[i]; > >> - > >> - if (vn->purge_work.func) { > >> - flush_work(&vn->purge_work); > >> - nr_purged_areas += vn->nr_purged; > >> - } > >> + purge_vmap_node(&vn->purge_work); > >> + nr_purged_areas += vn->nr_purged; > >> } > >> } > >> > >> @@ -5519,10 +5499,21 @@ vmap_node_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) > >> { > >> struct vmap_node *vn; > >> > >> - guard(mutex)(&vmap_purge_lock); > >> + /* > >> + * This shrinker is invoked from direct reclaim path where memory > >> + * pressure is already high. Blocking on vmap_purge_lock here can > >> + * cause a pile-up of tasks all waiting for the same mutex while > >> + * the lock holder may itself be blocked in flush_work() waiting for > >> + * a worker that is stuck in the same reclaim path. Use trylock to > >> + * avoid this; skipping a pool decay cycle is harmless. > >> + */ > >> + if (!mutex_trylock(&vmap_purge_lock)) > >> + return SHRINK_STOP; > >> + > >> for_each_vmap_node(vn) > >> decay_va_pool_node(vn, true); > >> > >> + mutex_unlock(&vmap_purge_lock); > >> return SHRINK_STOP; > >> } > >> > >> -- > >> 2.25.1 > >> > > Have you seen any report about the problem you described? > > > Our testing team discovered the issue during testing with syzkaller > on kernel version 6.6.89. The relevant warnings are shown below. > > INFO: task kworker/u80:6:141 blocked for more than 143 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:kworker/u80:6 state:D stack:0 pid:141 tgid:141 ppid:2 flags:0x00004000 > Workqueue: events_unbound call_usermodehelper_exec_work > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] > alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] > alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] > dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 > copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 > kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 > call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] > call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 > process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 > process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] > worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 > kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > > INFO: task syz-executor.0:37820 blocked for more than 143 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:syz-executor.0 state:D stack:0 pid:37820 tgid:37820 ppid:1 flags:0x00000004 > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > pagetable_alloc_noprof root/klinux/./include/linux/mm.h:2982 [inline] > __pud_alloc_one_noprof root/klinux/./include/asm-generic/pgalloc.h:174 [inline] > pud_alloc_one_noprof root/klinux/./include/asm-generic/pgalloc.h:195 [inline] > __pud_alloc+0x40/0x650 root/klinux/mm/memory.c:6222 > pud_alloc root/klinux/./include/linux/mm.h:2939 [inline] > copy_pud_range root/klinux/mm/memory.c:1270 [inline] > copy_p4d_range+0x95e/0xb70 root/klinux/mm/memory.c:1314 > copy_page_range+0x432/0xa30 root/klinux/mm/memory.c:1408 > dup_mmap+0x1127/0x1ef0 root/klinux/kernel/fork.c:773 > dup_mm+0x93/0x4e0 root/klinux/kernel/fork.c:1722 > copy_mm root/klinux/kernel/fork.c:1781 [inline] > copy_process+0x2c89/0x57d0 root/klinux/kernel/fork.c:2436 > kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > __do_sys_clone+0xcf/0x120 root/klinux/kernel/fork.c:2992 > do_syscall_x64 root/klinux/arch/x86/entry/common.c:51 [inline] > do_syscall_64+0x74/0x360 root/klinux/arch/x86/entry/common.c:81 > entry_SYSCALL_64_after_hwframe+0x76/0xe0 > RIP: 0033:0x45d778 > RSP: 002b:00007ffc4d846860 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 > RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000000000045d778 > RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 > RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000013782980 > R10: 0000000013782c50 R11: 0000000000000246 R12: 0000000000000000 > R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000000 > > INFO: task syz-executor.10:56553 blocked for more than 143 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:syz-executor.10 state:D stack:0 pid:56553 tgid:56553 ppid:1 flags:0x00000004 > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] > alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] > alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] > dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 > copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 > kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > __do_sys_clone+0xcf/0x120 root/klinux/kernel/fork.c:2992 > do_syscall_x64 root/klinux/arch/x86/entry/common.c:51 [inline] > do_syscall_64+0x74/0x360 root/klinux/arch/x86/entry/common.c:81 > entry_SYSCALL_64_after_hwframe+0x76/0xe0 > RIP: 0033:0x45d778 > RSP: 002b:00007ffc6a4dad70 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 > RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000000000045d778 > RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 > RBP: 0000000000000000 R08: 0000000000000000 R09: 000000002d906980 > R10: 000000002d906c50 R11: 0000000000000246 R12: 0000000000000000 > R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 > > INFO: task kworker/12:13:56977 blocked for more than 144 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:kworker/12:13 state:D stack:0 pid:56977 tgid:56977 ppid:2 flags:0x00004000 > Workqueue: events drain_vmap_area_work > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_timeout+0x268/0x2b0 root/klinux/kernel/time/timer.c:2142 > do_wait_for_common root/klinux/kernel/sched/completion.c:95 [inline] > __wait_for_common+0x3ea/0x600 root/klinux/kernel/sched/completion.c:116 > __flush_work+0xf4/0x180 root/klinux/kernel/workqueue.c:4125 > __purge_vmap_area_lazy+0x8e5/0xcf0 root/klinux/mm/vmalloc.c:2324 > drain_vmap_area_work+0x2c/0x40 root/klinux/mm/vmalloc.c:2349 > process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 > process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] > worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 > kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > > INFO: task kdamond.0:66163 blocked for more than 144 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:kdamond.0 state:D stack:0 pid:66163 tgid:66163 ppid:2 flags:0x00004000 > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > alloc_slab_page root/klinux/mm/slub.c:2315 [inline] > allocate_slab+0x27a/0x3f0 root/klinux/mm/slub.c:2485 > ___slab_alloc+0x889/0x1060 root/klinux/mm/slub.c:3727 > __slab_alloc.constprop.0+0x52/0xa0 root/klinux/mm/slub.c:3817 > __slab_alloc_node root/klinux/mm/slub.c:3870 [inline] > slab_alloc_node root/klinux/mm/slub.c:4031 [inline] > kmem_cache_alloc_noprof+0x385/0x3e0 root/klinux/mm/slub.c:4050 > damon_new_region+0x29/0x1a0 root/klinux/mm/damon/core.c:124 > damon_va_evenly_split_region+0x1f8/0x2c0 root/klinux/mm/damon/vaddr.c:85 > __damon_va_init_regions root/klinux/mm/damon/vaddr.c:271 [inline] > damon_va_init+0x2b5/0x470 root/klinux/mm/damon/vaddr.c:283 > kdamond_fn+0x289/0x1240 root/klinux/mm/damon/core.c:1432 > kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > > INFO: task kworker/u80:5:67724 blocked for more than 144 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:kworker/u80:5 state:D stack:0 pid:67724 tgid:67724 ppid:2 flags:0x00004000 > Workqueue: events_unbound call_usermodehelper_exec_work > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] > alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] > alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] > dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 > copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 > kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 > call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] > call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 > process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 > process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] > worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 > kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > > INFO: task kworker/u80:9:69412 blocked for more than 144 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:kworker/u80:9 state:D stack:0 pid:69412 tgid:69412 ppid:2 flags:0x00004000 > Workqueue: events_unbound call_usermodehelper_exec_work > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] > alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] > alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] > dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 > copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 > kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 > call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] > call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 > process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 > process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] > worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 > kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > > INFO: task syz-executor.18:73039 blocked for more than 144 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:syz-executor.18 state:D stack:0 pid:73039 tgid:73039 ppid:1 flags:0x00004004 > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 > vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 > folio_prealloc root/klinux/mm/memory.c:1062 [inline] > wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 > do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 > handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 > __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 > handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 > do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 > handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] > exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 > asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 > RIP: 0033:0x45d8e1 > RSP: 002b:00007ffd015d5e10 EFLAGS: 00010246 > RAX: 000000000000003b RBX: 0000000000000000 RCX: 000000000045d778 > RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 > RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000701d980 > R10: 000000000701dc50 R11: 0000000000000246 R12: 000000000000003b > R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000000 > > INFO: task syz-executor.13:74790 blocked for more than 144 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:syz-executor.13 state:D stack:0 pid:74790 tgid:74790 ppid:1 flags:0x00000004 > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 > vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 > folio_prealloc root/klinux/mm/memory.c:1062 [inline] > wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 > do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 > handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 > __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 > handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 > do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 > handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] > exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 > asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 > RIP: 0033:0x45d8e1 > RSP: 002b:00007ffe18ac7000 EFLAGS: 00010246 > RAX: 0000000000000038 RBX: 0000000000000000 RCX: 000000000045d778 > RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 > RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000eb5f980 > R10: 000000000eb5fc50 R11: 0000000000000246 R12: 0000000000000038 > R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 > > INFO: task syz-executor.5:78550 blocked for more than 144 seconds. > Tainted: G S ------- ---- 6.6.89+ #931 > "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > task:syz-executor.5 state:D stack:0 pid:78550 tgid:78550 ppid:1 flags:0x00000004 > Call Trace: > > context_switch root/klinux/kernel/sched/core.c:5346 [inline] > __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 > vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 > folio_prealloc root/klinux/mm/memory.c:1062 [inline] > wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 > do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 > handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 > __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 > handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 > do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 > handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] > exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 > asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 > RIP: 0033:0x45d8e1 > RSP: 002b:00007fff9b912230 EFLAGS: 00010246 > RAX: 0000000000000019 RBX: 0000000000000000 RCX: 000000000045d778 > RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 > RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000cd3c980 > R10: 000000000cd3cc50 R11: 0000000000000246 R12: 0000000000000019 > R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 > > Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings > > Showing all locks held in the system: > 2 locks held by kthreadd/2: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 4 locks held by kworker/u80:6/141: > #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 > #1: ffff8881053cfd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 1 lock held by khungtaskd/155: > #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire root/klinux/./include/linux/rcupdate.h:334 [inline] > #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock root/klinux/./include/linux/rcupdate.h:786 [inline] > #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x75/0x340 root/klinux/kernel/locking/lockdep.c:6721 > 2 locks held by bash/957: > #0: ffff88800310d0a8 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x29/0x80 root/klinux/drivers/tty/tty_ldisc.c:243 > #1: ffffc900039852f8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xd55/0x1230 root/klinux/drivers/tty/n_tty.c:2217 > 5 locks held by syz-executor.0/37820: > #0: ffffffff8b511780 (dup_mmap_sem){++++}-{0:0}, at: dup_mmap+0xbe/0x1ef0 root/klinux/kernel/fork.c:668 > #1: ffff888106b396e8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_write_lock_killable root/klinux/./include/linux/mmap_lock.h:124 [inline] > #1: ffff888106b396e8 (&mm->mmap_lock){++++}-{3:3}, at: dup_mmap+0xdc/0x1ef0 root/klinux/kernel/fork.c:669 > #2: ffff88801ff62be8 (&mm->mmap_lock/1){+.+.}-{3:3}, at: mmap_write_lock_nested root/klinux/./include/linux/mmap_lock.h:115 [inline] > #2: ffff88801ff62be8 (&mm->mmap_lock/1){+.+.}-{3:3}, at: dup_mmap+0x125/0x1ef0 root/klinux/kernel/fork.c:678 > #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #4: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #4: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 2 locks held by bash/41651: > #0: ffff88801f8cb8a8 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x29/0x80 root/klinux/drivers/tty/tty_ldisc.c:243 > #1: ffffc900001fd2f8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xd55/0x1230 root/klinux/drivers/tty/n_tty.c:2217 > 2 locks held by syz-executor.10/56553: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by kworker/12:13/56977: > #0: ffff88810419cb58 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 > #1: ffff88804264fd80 (drain_vmap_work){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: drain_vmap_area_work+0x1c/0x40 root/klinux/mm/vmalloc.c:2348 > 2 locks held by kdamond.0/66163: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 4 locks held by kworker/u80:5/67724: > #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 > #1: ffff88804664fd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 4 locks held by kworker/u80:9/69412: > #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 > #1: ffff8880346afd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.18/73039: > #0: ffff888048652940 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff888048652940 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.13/74790: > #0: ffff88803e37eeb8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff88803e37eeb8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.5/78550: > #0: ffff88801f4310e8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff88801f4310e8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.26/80991: > #0: ffff88801b3c6068 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_lock root/klinux/./include/linux/mmap_lock.h:146 [inline] > #0: ffff88801b3c6068 (&mm->mmap_lock){++++}-{3:3}, at: __mm_populate+0x220/0x360 root/klinux/mm/gup.c:2170 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 4 locks held by syz-executor.5/80992: > #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: get_signal+0x18d9/0x1a60 root/klinux/kernel/signal.c:2915 > #1: ffff888001a29818 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: inode_lock root/klinux/./include/linux/fs.h:828 [inline] > #1: ffff888001a29818 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: generic_file_write_iter+0x91/0x2f0 root/klinux/mm/filemap.c:4181 > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 2 locks held by syz-executor.22/81067: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 2 locks held by syz-executor.31/81012: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 2 locks held by syz-executor.31/81059: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.23/81024: > #0: ffff88804a3aa080 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff88804a3aa080 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 2 locks held by syz-executor.23/81030: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.27/81031: > #0: ffff88802008cb70 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff88802008cb70 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 2 locks held by syz-executor.30/81070: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 4 locks held by syz-executor.28/81036: > #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: filename_create+0xf9/0x4c0 root/klinux/fs/namei.c:3928 > #1: ffff88817b041270 (&sb->s_type->i_mutex_key/1){+.+.}-{3:3}, at: inode_lock_nested root/klinux/./include/linux/fs.h:863 [inline] > #1: ffff88817b041270 (&sb->s_type->i_mutex_key/1){+.+.}-{3:3}, at: filename_create+0x1a1/0x4c0 root/klinux/fs/namei.c:3935 > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.12/81086: > #0: ffff88801f2a45f8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff88801f2a45f8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 4 locks held by syz-executor.22/81082: > #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: get_signal+0x18d9/0x1a60 root/klinux/kernel/signal.c:2915 > #1: ffff88805c122910 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: inode_lock root/klinux/./include/linux/fs.h:828 [inline] > #1: ffff88805c122910 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: generic_file_write_iter+0x91/0x2f0 root/klinux/mm/filemap.c:4181 > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.17/81084: > #0: ffff888084e01430 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff888084e01430 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.21/81088: > #0: ffff88801cde23c8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff88801cde23c8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.5/81089: > #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] > #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] > #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.13/81090: > #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] > #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] > #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.18/81091: > #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] > #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] > #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 2 locks held by syz-executor.7/81096: > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > 3 locks held by syz-executor.16/81095: > #0: ffff88801de15e08 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > #0: ffff88801de15e08 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > > ============================================= > > > > -- > > Uladzislau Rezki > > -- > Thanks, > Ye Liu > Thank you! I can trigger below: <snip> Aug 25 13:56:52 pc638 kernel: Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings Aug 25 13:56:52 pc638 kernel: Showing all locks held in the system: Aug 25 13:56:52 pc638 kernel: 1 lock held by khungtaskd/488: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3306840 (rcu_read_lock){....}-{1:3}, at: debug_show_all_locks+0x47/0x19b Aug 25 13:56:52 pc638 kernel: 3 locks held by kworker/52:1/694: Aug 25 13:56:52 pc638 kernel: #0: ffff8ac4401a4140 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x57b/0x600 Aug 25 13:56:52 pc638 kernel: #1: ffffce26435ffe30 (drain_vmap_work){+.+.}-{0:0}, at: process_one_work+0x1fc/0x600 Aug 25 13:56:52 pc638 kernel: #2: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: drain_vmap_area_work+0x1b/0x40 Aug 25 13:56:52 pc638 kernel: 1 lock held by in:imklog/3831: Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/2/5009: Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/4/5011: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/5/5012: Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/8/5015: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/30/5037: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/31/5038: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/38/5045: Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/39/5046: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/41/5048: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/49/5056: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/51/5058: Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/57/5064: ... <snip> I think this is with your patch. But i can check also without. One potential issue to inline vnode-drain - is a time. At least we need to inject cond_resched() after each vnode flush + /* * Reclaim vmap areas by purging fragmented blocks and purge_vmap_area_list. */ static void reclaim_and_purge_vmap_areas(void) { mutex_lock(&vmap_purge_lock); purge_fragmented_blocks_allcpus(); __purge_vmap_area_lazy(ULONG_MAX, 0, true); mutex_unlock(&vmap_purge_lock); } here use try-lock as well due to potentially increased flush time. Any thoughts? -- Uladzislau Rezki ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mm/vmalloc: fix vmap_purge_lock livelock under memory pressure 2026-08-25 17:40 ` Uladzislau Rezki @ 2026-08-26 5:39 ` Dev Jain 2026-08-26 8:19 ` Uladzislau Rezki 0 siblings, 1 reply; 5+ messages in thread From: Dev Jain @ 2026-08-26 5:39 UTC (permalink / raw) To: Uladzislau Rezki, Ye Liu; +Cc: Andrew Morton, Ye Liu, linux-mm, linux-kernel On 25/08/26 11:10 pm, Uladzislau Rezki wrote: > On Tue, Aug 25, 2026 at 09:04:24AM +0800, Ye Liu wrote: >> >> >> 在 2026/8/24 21:19, Uladzislau Rezki 写道: >>> On Mon, Aug 24, 2026 at 05:50:19PM +0800, Ye Liu wrote: >>>> From: Ye Liu <liuye@kylinos.cn> >>>> >>>> The vmap_purge_lock mutex can be held for an extended period by >>>> __purge_vmap_area_lazy() which calls flush_work() to wait for >>>> purge_vmap_node workers while holding the lock. Under memory >>>> pressure, those workers may themselves be blocked in direct >>>> reclaim trying to acquire the same lock via the >>>> vmap_node_shrink_scan() shrinker callback, creating a circular >>>> dependency that deadlocks the entire system. >>>> >>>> Two changes: >>>> >>>> 1. vmap_node_shrink_scan(): replace blocking guard(mutex) with >>>> mutex_trylock(). This is a shrinker that only decays the vmap >>>> pool and returns SHRINK_STOP without freeing memory; skipping a >>>> decay cycle when the lock is contended is harmless and prevents >>>> tasks from piling up on the mutex in the direct reclaim path. >>>> >>>> 2. __purge_vmap_area_lazy(): purge all vmap nodes inline instead of >>>> scheduling purge_vmap_node via workqueue and calling flush_work() >>>> while holding vmap_purge_lock. The workqueue dispatch + flush >>>> pattern under a mutex is the deadlock trigger: if no free worker >>>> threads are available (all blocked on the same lock), flush_work() >>>> never returns and the lock is held indefinitely. >>>> >>>> Fixes: 7679ba6b36db ("mm: vmalloc: add a shrinker to drain vmap pools") >>>> Signed-off-by: Ye Liu <liuye@kylinos.cn> >>>> --- >>>> mm/vmalloc.c | 51 +++++++++++++++++++++------------------------------ >>>> 1 file changed, 21 insertions(+), 30 deletions(-) >>>> >>>> diff --git a/mm/vmalloc.c b/mm/vmalloc.c >>>> index bea9f76ed7e7..41443708d22d 100644 >>>> --- a/mm/vmalloc.c >>>> +++ b/mm/vmalloc.c >>>> @@ -2358,7 +2358,6 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, >>>> bool full_pool_decay) >>>> { >>>> unsigned long nr_purged_areas = 0; >>>> - unsigned int nr_purge_helpers; >>>> static cpumask_t purge_nodes; >>>> unsigned int nr_purge_nodes; >>>> struct vmap_node *vn; >>>> @@ -2397,36 +2396,17 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, >>>> if (nr_purge_nodes > 0) { >>>> flush_tlb_kernel_range(start, end); >>>> >>>> - /* One extra worker is per a lazy_max_pages() full set minus one. */ >>>> - nr_purge_helpers = atomic_long_read(&vmap_lazy_nr) / lazy_max_pages(); >>>> - nr_purge_helpers = clamp(nr_purge_helpers, 1U, nr_purge_nodes) - 1; >>>> - >>>> - for_each_cpu(i, &purge_nodes) { >>>> - vn = &vmap_nodes[i]; >>>> - >>>> - if (nr_purge_helpers > 0) { >>>> - INIT_WORK(&vn->purge_work, purge_vmap_node); >>>> - >>>> - if (cpumask_test_cpu(i, cpu_online_mask)) >>>> - schedule_work_on(i, &vn->purge_work); >>>> - else >>>> - schedule_work(&vn->purge_work); >>>> - >>>> - nr_purge_helpers--; >>>> - } else { >>>> - vn->purge_work.func = NULL; >>>> - purge_vmap_node(&vn->purge_work); >>>> - nr_purged_areas += vn->nr_purged; >>>> - } >>>> - } >>>> - >>>> + /* >>>> + * Purge all nodes inline. Do not schedule_work() and >>>> + * flush_work() here: flush_work() while holding >>>> + * vmap_purge_lock can deadlock if the worker pool is >>>> + * starved (e.g. all workers blocked on this same lock >>>> + * in the direct reclaim path via vmap_node_shrink_scan). >>>> + */ >>>> for_each_cpu(i, &purge_nodes) { >>>> vn = &vmap_nodes[i]; >>>> - >>>> - if (vn->purge_work.func) { >>>> - flush_work(&vn->purge_work); >>>> - nr_purged_areas += vn->nr_purged; >>>> - } >>>> + purge_vmap_node(&vn->purge_work); >>>> + nr_purged_areas += vn->nr_purged; >>>> } >>>> } >>>> >>>> @@ -5519,10 +5499,21 @@ vmap_node_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) >>>> { >>>> struct vmap_node *vn; >>>> >>>> - guard(mutex)(&vmap_purge_lock); >>>> + /* >>>> + * This shrinker is invoked from direct reclaim path where memory >>>> + * pressure is already high. Blocking on vmap_purge_lock here can >>>> + * cause a pile-up of tasks all waiting for the same mutex while >>>> + * the lock holder may itself be blocked in flush_work() waiting for >>>> + * a worker that is stuck in the same reclaim path. Use trylock to >>>> + * avoid this; skipping a pool decay cycle is harmless. >>>> + */ >>>> + if (!mutex_trylock(&vmap_purge_lock)) >>>> + return SHRINK_STOP; >>>> + >>>> for_each_vmap_node(vn) >>>> decay_va_pool_node(vn, true); >>>> >>>> + mutex_unlock(&vmap_purge_lock); >>>> return SHRINK_STOP; >>>> } >>>> >>>> -- >>>> 2.25.1 >>>> >>> Have you seen any report about the problem you described? >>> >> Our testing team discovered the issue during testing with syzkaller >> on kernel version 6.6.89. The relevant warnings are shown below. >> >> INFO: task kworker/u80:6:141 blocked for more than 143 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:kworker/u80:6 state:D stack:0 pid:141 tgid:141 ppid:2 flags:0x00004000 >> Workqueue: events_unbound call_usermodehelper_exec_work >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] >> alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] >> alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] >> dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 >> copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 >> user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 >> call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] >> call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 >> process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 >> process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] >> worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 >> >> INFO: task syz-executor.0:37820 blocked for more than 143 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:syz-executor.0 state:D stack:0 pid:37820 tgid:37820 ppid:1 flags:0x00000004 >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 >> pagetable_alloc_noprof root/klinux/./include/linux/mm.h:2982 [inline] >> __pud_alloc_one_noprof root/klinux/./include/asm-generic/pgalloc.h:174 [inline] >> pud_alloc_one_noprof root/klinux/./include/asm-generic/pgalloc.h:195 [inline] >> __pud_alloc+0x40/0x650 root/klinux/mm/memory.c:6222 >> pud_alloc root/klinux/./include/linux/mm.h:2939 [inline] >> copy_pud_range root/klinux/mm/memory.c:1270 [inline] >> copy_p4d_range+0x95e/0xb70 root/klinux/mm/memory.c:1314 >> copy_page_range+0x432/0xa30 root/klinux/mm/memory.c:1408 >> dup_mmap+0x1127/0x1ef0 root/klinux/kernel/fork.c:773 >> dup_mm+0x93/0x4e0 root/klinux/kernel/fork.c:1722 >> copy_mm root/klinux/kernel/fork.c:1781 [inline] >> copy_process+0x2c89/0x57d0 root/klinux/kernel/fork.c:2436 >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 >> __do_sys_clone+0xcf/0x120 root/klinux/kernel/fork.c:2992 >> do_syscall_x64 root/klinux/arch/x86/entry/common.c:51 [inline] >> do_syscall_64+0x74/0x360 root/klinux/arch/x86/entry/common.c:81 >> entry_SYSCALL_64_after_hwframe+0x76/0xe0 >> RIP: 0033:0x45d778 >> RSP: 002b:00007ffc4d846860 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 >> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000000000045d778 >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 >> RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000013782980 >> R10: 0000000013782c50 R11: 0000000000000246 R12: 0000000000000000 >> R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000000 >> >> INFO: task syz-executor.10:56553 blocked for more than 143 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:syz-executor.10 state:D stack:0 pid:56553 tgid:56553 ppid:1 flags:0x00000004 >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] >> alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] >> alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] >> dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 >> copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 >> __do_sys_clone+0xcf/0x120 root/klinux/kernel/fork.c:2992 >> do_syscall_x64 root/klinux/arch/x86/entry/common.c:51 [inline] >> do_syscall_64+0x74/0x360 root/klinux/arch/x86/entry/common.c:81 >> entry_SYSCALL_64_after_hwframe+0x76/0xe0 >> RIP: 0033:0x45d778 >> RSP: 002b:00007ffc6a4dad70 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 >> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000000000045d778 >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 >> RBP: 0000000000000000 R08: 0000000000000000 R09: 000000002d906980 >> R10: 000000002d906c50 R11: 0000000000000246 R12: 0000000000000000 >> R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 >> >> INFO: task kworker/12:13:56977 blocked for more than 144 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:kworker/12:13 state:D stack:0 pid:56977 tgid:56977 ppid:2 flags:0x00004000 >> Workqueue: events drain_vmap_area_work >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_timeout+0x268/0x2b0 root/klinux/kernel/time/timer.c:2142 >> do_wait_for_common root/klinux/kernel/sched/completion.c:95 [inline] >> __wait_for_common+0x3ea/0x600 root/klinux/kernel/sched/completion.c:116 >> __flush_work+0xf4/0x180 root/klinux/kernel/workqueue.c:4125 >> __purge_vmap_area_lazy+0x8e5/0xcf0 root/klinux/mm/vmalloc.c:2324 >> drain_vmap_area_work+0x2c/0x40 root/klinux/mm/vmalloc.c:2349 >> process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 >> process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] >> worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 >> >> INFO: task kdamond.0:66163 blocked for more than 144 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:kdamond.0 state:D stack:0 pid:66163 tgid:66163 ppid:2 flags:0x00004000 >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 >> alloc_slab_page root/klinux/mm/slub.c:2315 [inline] >> allocate_slab+0x27a/0x3f0 root/klinux/mm/slub.c:2485 >> ___slab_alloc+0x889/0x1060 root/klinux/mm/slub.c:3727 >> __slab_alloc.constprop.0+0x52/0xa0 root/klinux/mm/slub.c:3817 >> __slab_alloc_node root/klinux/mm/slub.c:3870 [inline] >> slab_alloc_node root/klinux/mm/slub.c:4031 [inline] >> kmem_cache_alloc_noprof+0x385/0x3e0 root/klinux/mm/slub.c:4050 >> damon_new_region+0x29/0x1a0 root/klinux/mm/damon/core.c:124 >> damon_va_evenly_split_region+0x1f8/0x2c0 root/klinux/mm/damon/vaddr.c:85 >> __damon_va_init_regions root/klinux/mm/damon/vaddr.c:271 [inline] >> damon_va_init+0x2b5/0x470 root/klinux/mm/damon/vaddr.c:283 >> kdamond_fn+0x289/0x1240 root/klinux/mm/damon/core.c:1432 >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 >> >> INFO: task kworker/u80:5:67724 blocked for more than 144 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:kworker/u80:5 state:D stack:0 pid:67724 tgid:67724 ppid:2 flags:0x00004000 >> Workqueue: events_unbound call_usermodehelper_exec_work >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] >> alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] >> alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] >> dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 >> copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 >> user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 >> call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] >> call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 >> process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 >> process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] >> worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 >> >> INFO: task kworker/u80:9:69412 blocked for more than 144 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:kworker/u80:9 state:D stack:0 pid:69412 tgid:69412 ppid:2 flags:0x00004000 >> Workqueue: events_unbound call_usermodehelper_exec_work >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] >> alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] >> alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] >> dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 >> copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 >> user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 >> call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] >> call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 >> process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 >> process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] >> worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 >> >> INFO: task syz-executor.18:73039 blocked for more than 144 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:syz-executor.18 state:D stack:0 pid:73039 tgid:73039 ppid:1 flags:0x00004004 >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 >> folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 >> vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 >> folio_prealloc root/klinux/mm/memory.c:1062 [inline] >> wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 >> do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 >> handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 >> __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 >> handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 >> do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 >> handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] >> exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 >> asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 >> RIP: 0033:0x45d8e1 >> RSP: 002b:00007ffd015d5e10 EFLAGS: 00010246 >> RAX: 000000000000003b RBX: 0000000000000000 RCX: 000000000045d778 >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 >> RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000701d980 >> R10: 000000000701dc50 R11: 0000000000000246 R12: 000000000000003b >> R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000000 >> >> INFO: task syz-executor.13:74790 blocked for more than 144 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:syz-executor.13 state:D stack:0 pid:74790 tgid:74790 ppid:1 flags:0x00000004 >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 >> folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 >> vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 >> folio_prealloc root/klinux/mm/memory.c:1062 [inline] >> wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 >> do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 >> handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 >> __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 >> handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 >> do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 >> handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] >> exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 >> asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 >> RIP: 0033:0x45d8e1 >> RSP: 002b:00007ffe18ac7000 EFLAGS: 00010246 >> RAX: 0000000000000038 RBX: 0000000000000000 RCX: 000000000045d778 >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 >> RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000eb5f980 >> R10: 000000000eb5fc50 R11: 0000000000000246 R12: 0000000000000038 >> R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 >> >> INFO: task syz-executor.5:78550 blocked for more than 144 seconds. >> Tainted: G S ------- ---- 6.6.89+ #931 >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. >> task:syz-executor.5 state:D stack:0 pid:78550 tgid:78550 ppid:1 flags:0x00000004 >> Call Trace: >> >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 >> folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 >> vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 >> folio_prealloc root/klinux/mm/memory.c:1062 [inline] >> wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 >> do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 >> handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 >> __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 >> handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 >> do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 >> handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] >> exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 >> asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 >> RIP: 0033:0x45d8e1 >> RSP: 002b:00007fff9b912230 EFLAGS: 00010246 >> RAX: 0000000000000019 RBX: 0000000000000000 RCX: 000000000045d778 >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 >> RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000cd3c980 >> R10: 000000000cd3cc50 R11: 0000000000000246 R12: 0000000000000019 >> R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 >> >> Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings >> >> Showing all locks held in the system: >> 2 locks held by kthreadd/2: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 4 locks held by kworker/u80:6/141: >> #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 >> #1: ffff8881053cfd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 1 lock held by khungtaskd/155: >> #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire root/klinux/./include/linux/rcupdate.h:334 [inline] >> #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock root/klinux/./include/linux/rcupdate.h:786 [inline] >> #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x75/0x340 root/klinux/kernel/locking/lockdep.c:6721 >> 2 locks held by bash/957: >> #0: ffff88800310d0a8 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x29/0x80 root/klinux/drivers/tty/tty_ldisc.c:243 >> #1: ffffc900039852f8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xd55/0x1230 root/klinux/drivers/tty/n_tty.c:2217 >> 5 locks held by syz-executor.0/37820: >> #0: ffffffff8b511780 (dup_mmap_sem){++++}-{0:0}, at: dup_mmap+0xbe/0x1ef0 root/klinux/kernel/fork.c:668 >> #1: ffff888106b396e8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_write_lock_killable root/klinux/./include/linux/mmap_lock.h:124 [inline] >> #1: ffff888106b396e8 (&mm->mmap_lock){++++}-{3:3}, at: dup_mmap+0xdc/0x1ef0 root/klinux/kernel/fork.c:669 >> #2: ffff88801ff62be8 (&mm->mmap_lock/1){+.+.}-{3:3}, at: mmap_write_lock_nested root/klinux/./include/linux/mmap_lock.h:115 [inline] >> #2: ffff88801ff62be8 (&mm->mmap_lock/1){+.+.}-{3:3}, at: dup_mmap+0x125/0x1ef0 root/klinux/kernel/fork.c:678 >> #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #4: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #4: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 2 locks held by bash/41651: >> #0: ffff88801f8cb8a8 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x29/0x80 root/klinux/drivers/tty/tty_ldisc.c:243 >> #1: ffffc900001fd2f8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xd55/0x1230 root/klinux/drivers/tty/n_tty.c:2217 >> 2 locks held by syz-executor.10/56553: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by kworker/12:13/56977: >> #0: ffff88810419cb58 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 >> #1: ffff88804264fd80 (drain_vmap_work){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: drain_vmap_area_work+0x1c/0x40 root/klinux/mm/vmalloc.c:2348 >> 2 locks held by kdamond.0/66163: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 4 locks held by kworker/u80:5/67724: >> #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 >> #1: ffff88804664fd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 4 locks held by kworker/u80:9/69412: >> #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 >> #1: ffff8880346afd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.18/73039: >> #0: ffff888048652940 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff888048652940 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.13/74790: >> #0: ffff88803e37eeb8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff88803e37eeb8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.5/78550: >> #0: ffff88801f4310e8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff88801f4310e8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.26/80991: >> #0: ffff88801b3c6068 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_lock root/klinux/./include/linux/mmap_lock.h:146 [inline] >> #0: ffff88801b3c6068 (&mm->mmap_lock){++++}-{3:3}, at: __mm_populate+0x220/0x360 root/klinux/mm/gup.c:2170 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 4 locks held by syz-executor.5/80992: >> #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: get_signal+0x18d9/0x1a60 root/klinux/kernel/signal.c:2915 >> #1: ffff888001a29818 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: inode_lock root/klinux/./include/linux/fs.h:828 [inline] >> #1: ffff888001a29818 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: generic_file_write_iter+0x91/0x2f0 root/klinux/mm/filemap.c:4181 >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 2 locks held by syz-executor.22/81067: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 2 locks held by syz-executor.31/81012: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 2 locks held by syz-executor.31/81059: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.23/81024: >> #0: ffff88804a3aa080 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff88804a3aa080 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 2 locks held by syz-executor.23/81030: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.27/81031: >> #0: ffff88802008cb70 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff88802008cb70 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 2 locks held by syz-executor.30/81070: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 4 locks held by syz-executor.28/81036: >> #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: filename_create+0xf9/0x4c0 root/klinux/fs/namei.c:3928 >> #1: ffff88817b041270 (&sb->s_type->i_mutex_key/1){+.+.}-{3:3}, at: inode_lock_nested root/klinux/./include/linux/fs.h:863 [inline] >> #1: ffff88817b041270 (&sb->s_type->i_mutex_key/1){+.+.}-{3:3}, at: filename_create+0x1a1/0x4c0 root/klinux/fs/namei.c:3935 >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.12/81086: >> #0: ffff88801f2a45f8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff88801f2a45f8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 4 locks held by syz-executor.22/81082: >> #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: get_signal+0x18d9/0x1a60 root/klinux/kernel/signal.c:2915 >> #1: ffff88805c122910 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: inode_lock root/klinux/./include/linux/fs.h:828 [inline] >> #1: ffff88805c122910 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: generic_file_write_iter+0x91/0x2f0 root/klinux/mm/filemap.c:4181 >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.17/81084: >> #0: ffff888084e01430 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff888084e01430 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.21/81088: >> #0: ffff88801cde23c8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff88801cde23c8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.5/81089: >> #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] >> #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] >> #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.13/81090: >> #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] >> #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] >> #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.18/81091: >> #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] >> #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] >> #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 2 locks held by syz-executor.7/81096: >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> 3 locks held by syz-executor.16/81095: >> #0: ffff88801de15e08 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] >> #0: ffff88801de15e08 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 >> >> ============================================= >> >> >>> -- >>> Uladzislau Rezki >> >> -- >> Thanks, >> Ye Liu >> > Thank you! > > I can trigger below: > > <snip> > Aug 25 13:56:52 pc638 kernel: Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings > Aug 25 13:56:52 pc638 kernel: > Showing all locks held in the system: > Aug 25 13:56:52 pc638 kernel: 1 lock held by khungtaskd/488: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3306840 (rcu_read_lock){....}-{1:3}, at: debug_show_all_locks+0x47/0x19b > Aug 25 13:56:52 pc638 kernel: 3 locks held by kworker/52:1/694: > Aug 25 13:56:52 pc638 kernel: #0: ffff8ac4401a4140 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x57b/0x600 > Aug 25 13:56:52 pc638 kernel: #1: ffffce26435ffe30 (drain_vmap_work){+.+.}-{0:0}, at: process_one_work+0x1fc/0x600 > Aug 25 13:56:52 pc638 kernel: #2: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: drain_vmap_area_work+0x1b/0x40 > Aug 25 13:56:52 pc638 kernel: 1 lock held by in:imklog/3831: > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/2/5009: > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/4/5011: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/5/5012: > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/8/5015: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/30/5037: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/31/5038: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/38/5045: > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/39/5046: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/41/5048: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/49/5056: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/51/5058: > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/57/5064: > ... > <snip> > > I think this is with your patch. But i can check also without. > One potential issue to inline vnode-drain - is a time. At least > we need to inject cond_resched() after each vnode flush + > > /* > * Reclaim vmap areas by purging fragmented blocks and purge_vmap_area_list. > */ > static void reclaim_and_purge_vmap_areas(void) > > { > mutex_lock(&vmap_purge_lock); > purge_fragmented_blocks_allcpus(); > __purge_vmap_area_lazy(ULONG_MAX, 0, true); > mutex_unlock(&vmap_purge_lock); > } > > here use try-lock as well due to potentially increased flush time. > > Any thoughts? > > -- > Uladzislau Rezki IIUC we won't have to do inline purge if we switch both places to use mutex_trylock? ^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] mm/vmalloc: fix vmap_purge_lock livelock under memory pressure 2026-08-26 5:39 ` Dev Jain @ 2026-08-26 8:19 ` Uladzislau Rezki 0 siblings, 0 replies; 5+ messages in thread From: Uladzislau Rezki @ 2026-08-26 8:19 UTC (permalink / raw) To: Dev Jain Cc: Uladzislau Rezki, Ye Liu, Andrew Morton, Ye Liu, linux-mm, linux-kernel On Wed, Aug 26, 2026 at 11:09:21AM +0530, Dev Jain wrote: > > > On 25/08/26 11:10 pm, Uladzislau Rezki wrote: > > On Tue, Aug 25, 2026 at 09:04:24AM +0800, Ye Liu wrote: > >> > >> > >> 在 2026/8/24 21:19, Uladzislau Rezki 写道: > >>> On Mon, Aug 24, 2026 at 05:50:19PM +0800, Ye Liu wrote: > >>>> From: Ye Liu <liuye@kylinos.cn> > >>>> > >>>> The vmap_purge_lock mutex can be held for an extended period by > >>>> __purge_vmap_area_lazy() which calls flush_work() to wait for > >>>> purge_vmap_node workers while holding the lock. Under memory > >>>> pressure, those workers may themselves be blocked in direct > >>>> reclaim trying to acquire the same lock via the > >>>> vmap_node_shrink_scan() shrinker callback, creating a circular > >>>> dependency that deadlocks the entire system. > >>>> > >>>> Two changes: > >>>> > >>>> 1. vmap_node_shrink_scan(): replace blocking guard(mutex) with > >>>> mutex_trylock(). This is a shrinker that only decays the vmap > >>>> pool and returns SHRINK_STOP without freeing memory; skipping a > >>>> decay cycle when the lock is contended is harmless and prevents > >>>> tasks from piling up on the mutex in the direct reclaim path. > >>>> > >>>> 2. __purge_vmap_area_lazy(): purge all vmap nodes inline instead of > >>>> scheduling purge_vmap_node via workqueue and calling flush_work() > >>>> while holding vmap_purge_lock. The workqueue dispatch + flush > >>>> pattern under a mutex is the deadlock trigger: if no free worker > >>>> threads are available (all blocked on the same lock), flush_work() > >>>> never returns and the lock is held indefinitely. > >>>> > >>>> Fixes: 7679ba6b36db ("mm: vmalloc: add a shrinker to drain vmap pools") > >>>> Signed-off-by: Ye Liu <liuye@kylinos.cn> > >>>> --- > >>>> mm/vmalloc.c | 51 +++++++++++++++++++++------------------------------ > >>>> 1 file changed, 21 insertions(+), 30 deletions(-) > >>>> > >>>> diff --git a/mm/vmalloc.c b/mm/vmalloc.c > >>>> index bea9f76ed7e7..41443708d22d 100644 > >>>> --- a/mm/vmalloc.c > >>>> +++ b/mm/vmalloc.c > >>>> @@ -2358,7 +2358,6 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, > >>>> bool full_pool_decay) > >>>> { > >>>> unsigned long nr_purged_areas = 0; > >>>> - unsigned int nr_purge_helpers; > >>>> static cpumask_t purge_nodes; > >>>> unsigned int nr_purge_nodes; > >>>> struct vmap_node *vn; > >>>> @@ -2397,36 +2396,17 @@ static bool __purge_vmap_area_lazy(unsigned long start, unsigned long end, > >>>> if (nr_purge_nodes > 0) { > >>>> flush_tlb_kernel_range(start, end); > >>>> > >>>> - /* One extra worker is per a lazy_max_pages() full set minus one. */ > >>>> - nr_purge_helpers = atomic_long_read(&vmap_lazy_nr) / lazy_max_pages(); > >>>> - nr_purge_helpers = clamp(nr_purge_helpers, 1U, nr_purge_nodes) - 1; > >>>> - > >>>> - for_each_cpu(i, &purge_nodes) { > >>>> - vn = &vmap_nodes[i]; > >>>> - > >>>> - if (nr_purge_helpers > 0) { > >>>> - INIT_WORK(&vn->purge_work, purge_vmap_node); > >>>> - > >>>> - if (cpumask_test_cpu(i, cpu_online_mask)) > >>>> - schedule_work_on(i, &vn->purge_work); > >>>> - else > >>>> - schedule_work(&vn->purge_work); > >>>> - > >>>> - nr_purge_helpers--; > >>>> - } else { > >>>> - vn->purge_work.func = NULL; > >>>> - purge_vmap_node(&vn->purge_work); > >>>> - nr_purged_areas += vn->nr_purged; > >>>> - } > >>>> - } > >>>> - > >>>> + /* > >>>> + * Purge all nodes inline. Do not schedule_work() and > >>>> + * flush_work() here: flush_work() while holding > >>>> + * vmap_purge_lock can deadlock if the worker pool is > >>>> + * starved (e.g. all workers blocked on this same lock > >>>> + * in the direct reclaim path via vmap_node_shrink_scan). > >>>> + */ > >>>> for_each_cpu(i, &purge_nodes) { > >>>> vn = &vmap_nodes[i]; > >>>> - > >>>> - if (vn->purge_work.func) { > >>>> - flush_work(&vn->purge_work); > >>>> - nr_purged_areas += vn->nr_purged; > >>>> - } > >>>> + purge_vmap_node(&vn->purge_work); > >>>> + nr_purged_areas += vn->nr_purged; > >>>> } > >>>> } > >>>> > >>>> @@ -5519,10 +5499,21 @@ vmap_node_shrink_scan(struct shrinker *shrink, struct shrink_control *sc) > >>>> { > >>>> struct vmap_node *vn; > >>>> > >>>> - guard(mutex)(&vmap_purge_lock); > >>>> + /* > >>>> + * This shrinker is invoked from direct reclaim path where memory > >>>> + * pressure is already high. Blocking on vmap_purge_lock here can > >>>> + * cause a pile-up of tasks all waiting for the same mutex while > >>>> + * the lock holder may itself be blocked in flush_work() waiting for > >>>> + * a worker that is stuck in the same reclaim path. Use trylock to > >>>> + * avoid this; skipping a pool decay cycle is harmless. > >>>> + */ > >>>> + if (!mutex_trylock(&vmap_purge_lock)) > >>>> + return SHRINK_STOP; > >>>> + > >>>> for_each_vmap_node(vn) > >>>> decay_va_pool_node(vn, true); > >>>> > >>>> + mutex_unlock(&vmap_purge_lock); > >>>> return SHRINK_STOP; > >>>> } > >>>> > >>>> -- > >>>> 2.25.1 > >>>> > >>> Have you seen any report about the problem you described? > >>> > >> Our testing team discovered the issue during testing with syzkaller > >> on kernel version 6.6.89. The relevant warnings are shown below. > >> > >> INFO: task kworker/u80:6:141 blocked for more than 143 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:kworker/u80:6 state:D stack:0 pid:141 tgid:141 ppid:2 flags:0x00004000 > >> Workqueue: events_unbound call_usermodehelper_exec_work > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] > >> alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] > >> alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] > >> dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 > >> copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 > >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > >> user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 > >> call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] > >> call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 > >> process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 > >> process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] > >> worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 > >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > >> > >> INFO: task syz-executor.0:37820 blocked for more than 143 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:syz-executor.0 state:D stack:0 pid:37820 tgid:37820 ppid:1 flags:0x00000004 > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > >> pagetable_alloc_noprof root/klinux/./include/linux/mm.h:2982 [inline] > >> __pud_alloc_one_noprof root/klinux/./include/asm-generic/pgalloc.h:174 [inline] > >> pud_alloc_one_noprof root/klinux/./include/asm-generic/pgalloc.h:195 [inline] > >> __pud_alloc+0x40/0x650 root/klinux/mm/memory.c:6222 > >> pud_alloc root/klinux/./include/linux/mm.h:2939 [inline] > >> copy_pud_range root/klinux/mm/memory.c:1270 [inline] > >> copy_p4d_range+0x95e/0xb70 root/klinux/mm/memory.c:1314 > >> copy_page_range+0x432/0xa30 root/klinux/mm/memory.c:1408 > >> dup_mmap+0x1127/0x1ef0 root/klinux/kernel/fork.c:773 > >> dup_mm+0x93/0x4e0 root/klinux/kernel/fork.c:1722 > >> copy_mm root/klinux/kernel/fork.c:1781 [inline] > >> copy_process+0x2c89/0x57d0 root/klinux/kernel/fork.c:2436 > >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > >> __do_sys_clone+0xcf/0x120 root/klinux/kernel/fork.c:2992 > >> do_syscall_x64 root/klinux/arch/x86/entry/common.c:51 [inline] > >> do_syscall_64+0x74/0x360 root/klinux/arch/x86/entry/common.c:81 > >> entry_SYSCALL_64_after_hwframe+0x76/0xe0 > >> RIP: 0033:0x45d778 > >> RSP: 002b:00007ffc4d846860 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 > >> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000000000045d778 > >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 > >> RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000013782980 > >> R10: 0000000013782c50 R11: 0000000000000246 R12: 0000000000000000 > >> R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000000 > >> > >> INFO: task syz-executor.10:56553 blocked for more than 143 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:syz-executor.10 state:D stack:0 pid:56553 tgid:56553 ppid:1 flags:0x00000004 > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] > >> alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] > >> alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] > >> dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 > >> copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 > >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > >> __do_sys_clone+0xcf/0x120 root/klinux/kernel/fork.c:2992 > >> do_syscall_x64 root/klinux/arch/x86/entry/common.c:51 [inline] > >> do_syscall_64+0x74/0x360 root/klinux/arch/x86/entry/common.c:81 > >> entry_SYSCALL_64_after_hwframe+0x76/0xe0 > >> RIP: 0033:0x45d778 > >> RSP: 002b:00007ffc6a4dad70 EFLAGS: 00000246 ORIG_RAX: 0000000000000038 > >> RAX: ffffffffffffffda RBX: 0000000000000000 RCX: 000000000045d778 > >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000001200011 > >> RBP: 0000000000000000 R08: 0000000000000000 R09: 000000002d906980 > >> R10: 000000002d906c50 R11: 0000000000000246 R12: 0000000000000000 > >> R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 > >> > >> INFO: task kworker/12:13:56977 blocked for more than 144 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:kworker/12:13 state:D stack:0 pid:56977 tgid:56977 ppid:2 flags:0x00004000 > >> Workqueue: events drain_vmap_area_work > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_timeout+0x268/0x2b0 root/klinux/kernel/time/timer.c:2142 > >> do_wait_for_common root/klinux/kernel/sched/completion.c:95 [inline] > >> __wait_for_common+0x3ea/0x600 root/klinux/kernel/sched/completion.c:116 > >> __flush_work+0xf4/0x180 root/klinux/kernel/workqueue.c:4125 > >> __purge_vmap_area_lazy+0x8e5/0xcf0 root/klinux/mm/vmalloc.c:2324 > >> drain_vmap_area_work+0x2c/0x40 root/klinux/mm/vmalloc.c:2349 > >> process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 > >> process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] > >> worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 > >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > >> > >> INFO: task kdamond.0:66163 blocked for more than 144 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:kdamond.0 state:D stack:0 pid:66163 tgid:66163 ppid:2 flags:0x00004000 > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > >> alloc_slab_page root/klinux/mm/slub.c:2315 [inline] > >> allocate_slab+0x27a/0x3f0 root/klinux/mm/slub.c:2485 > >> ___slab_alloc+0x889/0x1060 root/klinux/mm/slub.c:3727 > >> __slab_alloc.constprop.0+0x52/0xa0 root/klinux/mm/slub.c:3817 > >> __slab_alloc_node root/klinux/mm/slub.c:3870 [inline] > >> slab_alloc_node root/klinux/mm/slub.c:4031 [inline] > >> kmem_cache_alloc_noprof+0x385/0x3e0 root/klinux/mm/slub.c:4050 > >> damon_new_region+0x29/0x1a0 root/klinux/mm/damon/core.c:124 > >> damon_va_evenly_split_region+0x1f8/0x2c0 root/klinux/mm/damon/vaddr.c:85 > >> __damon_va_init_regions root/klinux/mm/damon/vaddr.c:271 [inline] > >> damon_va_init+0x2b5/0x470 root/klinux/mm/damon/vaddr.c:283 > >> kdamond_fn+0x289/0x1240 root/klinux/mm/damon/core.c:1432 > >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > >> > >> INFO: task kworker/u80:5:67724 blocked for more than 144 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:kworker/u80:5 state:D stack:0 pid:67724 tgid:67724 ppid:2 flags:0x00004000 > >> Workqueue: events_unbound call_usermodehelper_exec_work > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] > >> alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] > >> alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] > >> dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 > >> copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 > >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > >> user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 > >> call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] > >> call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 > >> process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 > >> process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] > >> worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 > >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > >> > >> INFO: task kworker/u80:9:69412 blocked for more than 144 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:kworker/u80:9 state:D stack:0 pid:69412 tgid:69412 ppid:2 flags:0x00004000 > >> Workqueue: events_unbound call_usermodehelper_exec_work > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> __alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:244 [inline] > >> alloc_pages_node_noprof root/klinux/./include/linux/gfp.h:271 [inline] > >> alloc_thread_stack_node root/klinux/kernel/fork.c:367 [inline] > >> dup_task_struct+0xa4/0x6c0 root/klinux/kernel/fork.c:1161 > >> copy_process+0x4eb/0x57d0 root/klinux/kernel/fork.c:2261 > >> kernel_clone+0xdd/0x910 root/klinux/kernel/fork.c:2849 > >> user_mode_thread+0xcb/0x110 root/klinux/kernel/fork.c:2927 > >> call_usermodehelper_exec_sync root/klinux/kernel/umh.c:133 [inline] > >> call_usermodehelper_exec_work+0x69/0x170 root/klinux/kernel/umh.c:164 > >> process_one_work+0x90d/0x1aa0 root/klinux/kernel/workqueue.c:3235 > >> process_scheduled_works root/klinux/kernel/workqueue.c:3315 [inline] > >> worker_thread+0x633/0xe80 root/klinux/kernel/workqueue.c:3396 > >> kthread+0x317/0x420 root/klinux/kernel/kthread.c:388 > >> ret_from_fork+0x4ae/0x5e0 root/klinux/arch/x86/kernel/process.c:152 > >> ret_from_fork_asm+0x1a/0x30 root/klinux/arch/x86/entry/entry_64.S:293 > >> > >> INFO: task syz-executor.18:73039 blocked for more than 144 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:syz-executor.18 state:D stack:0 pid:73039 tgid:73039 ppid:1 flags:0x00004004 > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > >> folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 > >> vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 > >> folio_prealloc root/klinux/mm/memory.c:1062 [inline] > >> wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 > >> do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 > >> handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 > >> __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 > >> handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 > >> do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 > >> handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] > >> exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 > >> asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 > >> RIP: 0033:0x45d8e1 > >> RSP: 002b:00007ffd015d5e10 EFLAGS: 00010246 > >> RAX: 000000000000003b RBX: 0000000000000000 RCX: 000000000045d778 > >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 > >> RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000701d980 > >> R10: 000000000701dc50 R11: 0000000000000246 R12: 000000000000003b > >> R13: 0000000000000032 R14: 0000000000000000 R15: 0000000000000000 > >> > >> INFO: task syz-executor.13:74790 blocked for more than 144 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:syz-executor.13 state:D stack:0 pid:74790 tgid:74790 ppid:1 flags:0x00000004 > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > >> folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 > >> vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 > >> folio_prealloc root/klinux/mm/memory.c:1062 [inline] > >> wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 > >> do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 > >> handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 > >> __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 > >> handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 > >> do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 > >> handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] > >> exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 > >> asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 > >> RIP: 0033:0x45d8e1 > >> RSP: 002b:00007ffe18ac7000 EFLAGS: 00010246 > >> RAX: 0000000000000038 RBX: 0000000000000000 RCX: 000000000045d778 > >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 > >> RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000eb5f980 > >> R10: 000000000eb5fc50 R11: 0000000000000246 R12: 0000000000000038 > >> R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 > >> > >> INFO: task syz-executor.5:78550 blocked for more than 144 seconds. > >> Tainted: G S ------- ---- 6.6.89+ #931 > >> "echo 0 > /proc/sys/kernel/hung_task_timeout_secs" disables this message. > >> task:syz-executor.5 state:D stack:0 pid:78550 tgid:78550 ppid:1 flags:0x00000004 > >> Call Trace: > >> > >> context_switch root/klinux/kernel/sched/core.c:5346 [inline] > >> __schedule+0x7bc/0x1310 root/klinux/kernel/sched/core.c:6720 > >> __schedule_loop root/klinux/kernel/sched/core.c:6797 [inline] > >> schedule+0xe2/0x290 root/klinux/kernel/sched/core.c:6812 > >> schedule_preempt_disabled+0x18/0x30 root/klinux/kernel/sched/core.c:6869 > >> __mutex_lock_common root/klinux/kernel/locking/mutex.c:679 [inline] > >> __mutex_lock+0x914/0x13a0 root/klinux/kernel/locking/mutex.c:747 > >> class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> do_shrink_slab+0x3c9/0xf30 root/klinux/mm/shrinker.c:435 > >> shrink_slab+0x175/0x5e0 root/klinux/mm/shrinker.c:662 > >> shrink_node_memcgs+0x4d6/0x700 root/klinux/mm/vmscan.c:5900 > >> shrink_node+0x247/0x12c0 root/klinux/mm/vmscan.c:5933 > >> shrink_zones root/klinux/mm/vmscan.c:6175 [inline] > >> do_try_to_free_pages+0x314/0x1580 root/klinux/mm/vmscan.c:6237 > >> try_to_free_pages+0x293/0x740 root/klinux/mm/vmscan.c:6472 > >> __perform_reclaim root/klinux/mm/page_alloc.c:3965 [inline] > >> __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> __alloc_pages_slowpath.constprop.0+0x800/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> __alloc_pages_noprof+0x490/0x570 root/klinux/mm/page_alloc.c:4792 > >> alloc_pages_mpol_noprof+0x1ee/0x530 root/klinux/mm/mempolicy.c:2270 > >> folio_alloc_mpol_noprof+0x3b/0xd0 root/klinux/mm/mempolicy.c:2288 > >> vma_alloc_folio_noprof+0xaf/0x140 root/klinux/mm/mempolicy.c:2316 > >> folio_prealloc root/klinux/mm/memory.c:1062 [inline] > >> wp_page_copy+0x21a/0x11c0 root/klinux/mm/memory.c:3308 > >> do_wp_page+0x762/0x14e0 root/klinux/mm/memory.c:3700 > >> handle_pte_fault+0x573/0x730 root/klinux/mm/memory.c:5717 > >> __handle_mm_fault+0xae4/0x10d0 root/klinux/mm/memory.c:5844 > >> handle_mm_fault+0x376/0x650 root/klinux/mm/memory.c:6009 > >> do_user_addr_fault+0x2be/0xc40 root/klinux/arch/x86/mm/fault.c:1330 > >> handle_page_fault root/klinux/arch/x86/mm/fault.c:1471 [inline] > >> exc_page_fault+0x5c/0xe0 root/klinux/arch/x86/mm/fault.c:1527 > >> asm_exc_page_fault+0x26/0x30 root/klinux/./arch/x86/include/asm/idtentry.h:608 > >> RIP: 0033:0x45d8e1 > >> RSP: 002b:00007fff9b912230 EFLAGS: 00010246 > >> RAX: 0000000000000019 RBX: 0000000000000000 RCX: 000000000045d778 > >> RDX: 0000000000000000 RSI: 0000000000000000 RDI: 0000000000000002 > >> RBP: 0000000000000000 R08: 0000000000000000 R09: 000000000cd3c980 > >> R10: 000000000cd3cc50 R11: 0000000000000246 R12: 0000000000000019 > >> R13: 0000000000000032 R14: 0000000000000001 R15: 0000000000000000 > >> > >> Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings > >> > >> Showing all locks held in the system: > >> 2 locks held by kthreadd/2: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 4 locks held by kworker/u80:6/141: > >> #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 > >> #1: ffff8881053cfd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 1 lock held by khungtaskd/155: > >> #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: rcu_lock_acquire root/klinux/./include/linux/rcupdate.h:334 [inline] > >> #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: rcu_read_lock root/klinux/./include/linux/rcupdate.h:786 [inline] > >> #0: ffffffff8b33eb00 (rcu_read_lock){....}-{1:2}, at: debug_show_all_locks+0x75/0x340 root/klinux/kernel/locking/lockdep.c:6721 > >> 2 locks held by bash/957: > >> #0: ffff88800310d0a8 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x29/0x80 root/klinux/drivers/tty/tty_ldisc.c:243 > >> #1: ffffc900039852f8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xd55/0x1230 root/klinux/drivers/tty/n_tty.c:2217 > >> 5 locks held by syz-executor.0/37820: > >> #0: ffffffff8b511780 (dup_mmap_sem){++++}-{0:0}, at: dup_mmap+0xbe/0x1ef0 root/klinux/kernel/fork.c:668 > >> #1: ffff888106b396e8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_write_lock_killable root/klinux/./include/linux/mmap_lock.h:124 [inline] > >> #1: ffff888106b396e8 (&mm->mmap_lock){++++}-{3:3}, at: dup_mmap+0xdc/0x1ef0 root/klinux/kernel/fork.c:669 > >> #2: ffff88801ff62be8 (&mm->mmap_lock/1){+.+.}-{3:3}, at: mmap_write_lock_nested root/klinux/./include/linux/mmap_lock.h:115 [inline] > >> #2: ffff88801ff62be8 (&mm->mmap_lock/1){+.+.}-{3:3}, at: dup_mmap+0x125/0x1ef0 root/klinux/kernel/fork.c:678 > >> #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #3: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #4: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #4: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 2 locks held by bash/41651: > >> #0: ffff88801f8cb8a8 (&tty->ldisc_sem){++++}-{0:0}, at: tty_ldisc_ref_wait+0x29/0x80 root/klinux/drivers/tty/tty_ldisc.c:243 > >> #1: ffffc900001fd2f8 (&ldata->atomic_read_lock){+.+.}-{3:3}, at: n_tty_read+0xd55/0x1230 root/klinux/drivers/tty/n_tty.c:2217 > >> 2 locks held by syz-executor.10/56553: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by kworker/12:13/56977: > >> #0: ffff88810419cb58 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 > >> #1: ffff88804264fd80 (drain_vmap_work){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: drain_vmap_area_work+0x1c/0x40 root/klinux/mm/vmalloc.c:2348 > >> 2 locks held by kdamond.0/66163: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 4 locks held by kworker/u80:5/67724: > >> #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 > >> #1: ffff88804664fd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 4 locks held by kworker/u80:9/69412: > >> #0: ffff8881041a4d58 ((wq_completion)events_unbound){+.+.}-{0:0}, at: process_one_work+0x803/0x1aa0 root/klinux/kernel/workqueue.c:3210 > >> #1: ffff8880346afd80 ((work_completion)(&sub_info->work)){+.+.}-{0:0}, at: process_one_work+0x859/0x1aa0 root/klinux/kernel/workqueue.c:3211 > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.18/73039: > >> #0: ffff888048652940 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff888048652940 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.13/74790: > >> #0: ffff88803e37eeb8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff88803e37eeb8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.5/78550: > >> #0: ffff88801f4310e8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff88801f4310e8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.26/80991: > >> #0: ffff88801b3c6068 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_lock root/klinux/./include/linux/mmap_lock.h:146 [inline] > >> #0: ffff88801b3c6068 (&mm->mmap_lock){++++}-{3:3}, at: __mm_populate+0x220/0x360 root/klinux/mm/gup.c:2170 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 4 locks held by syz-executor.5/80992: > >> #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: get_signal+0x18d9/0x1a60 root/klinux/kernel/signal.c:2915 > >> #1: ffff888001a29818 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: inode_lock root/klinux/./include/linux/fs.h:828 [inline] > >> #1: ffff888001a29818 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: generic_file_write_iter+0x91/0x2f0 root/klinux/mm/filemap.c:4181 > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 2 locks held by syz-executor.22/81067: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 2 locks held by syz-executor.31/81012: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 2 locks held by syz-executor.31/81059: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.23/81024: > >> #0: ffff88804a3aa080 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff88804a3aa080 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 2 locks held by syz-executor.23/81030: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.27/81031: > >> #0: ffff88802008cb70 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff88802008cb70 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 2 locks held by syz-executor.30/81070: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 4 locks held by syz-executor.28/81036: > >> #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: filename_create+0xf9/0x4c0 root/klinux/fs/namei.c:3928 > >> #1: ffff88817b041270 (&sb->s_type->i_mutex_key/1){+.+.}-{3:3}, at: inode_lock_nested root/klinux/./include/linux/fs.h:863 [inline] > >> #1: ffff88817b041270 (&sb->s_type->i_mutex_key/1){+.+.}-{3:3}, at: filename_create+0x1a1/0x4c0 root/klinux/fs/namei.c:3935 > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.12/81086: > >> #0: ffff88801f2a45f8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff88801f2a45f8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 4 locks held by syz-executor.22/81082: > >> #0: ffff888104871430 (sb_writers#2){.+.+}-{0:0}, at: get_signal+0x18d9/0x1a60 root/klinux/kernel/signal.c:2915 > >> #1: ffff88805c122910 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: inode_lock root/klinux/./include/linux/fs.h:828 [inline] > >> #1: ffff88805c122910 (&sb->s_type->i_mutex_key){++++}-{3:3}, at: generic_file_write_iter+0x91/0x2f0 root/klinux/mm/filemap.c:4181 > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #2: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #3: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.17/81084: > >> #0: ffff888084e01430 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff888084e01430 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.21/81088: > >> #0: ffff88801cde23c8 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff88801cde23c8 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.5/81089: > >> #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] > >> #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] > >> #0: ffff888004d1abe8 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.13/81090: > >> #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] > >> #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] > >> #0: ffff888004d1f568 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.18/81091: > >> #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: mmap_read_trylock root/klinux/./include/linux/mmap_lock.h:165 [inline] > >> #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: get_mmap_lock_carefully root/klinux/mm/memory.c:6036 [inline] > >> #0: ffff888004d1d5e8 (&mm->mmap_lock){++++}-{3:3}, at: lock_mm_and_find_vma+0x35/0x5c0 root/klinux/mm/memory.c:6096 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 2 locks held by syz-executor.7/81096: > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #0: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #1: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> 3 locks held by syz-executor.16/81095: > >> #0: ffff88801de15e08 (&vma->vm_lock->lock){++++}-{3:3}, at: vma_start_read root/klinux/./include/linux/mm.h:694 [inline] > >> #0: ffff88801de15e08 (&vma->vm_lock->lock){++++}-{3:3}, at: lock_vma_under_rcu+0x1c7/0x6f0 root/klinux/mm/memory.c:6165 > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __perform_reclaim root/klinux/mm/page_alloc.c:3962 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_direct_reclaim root/klinux/mm/page_alloc.c:3987 [inline] > >> #1: ffffffff8b56b4c0 (fs_reclaim){+.+.}-{0:0}, at: __alloc_pages_slowpath.constprop.0+0x74d/0x1fb0 root/klinux/mm/page_alloc.c:4394 > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: class_mutex_constructor root/klinux/./include/linux/mutex.h:200 [inline] > >> #2: ffffffff8b567390 (vmap_purge_lock){+.+.}-{3:3}, at: vmap_node_shrink_scan+0x1d/0x90 root/klinux/mm/vmalloc.c:5108 > >> > >> ============================================= > >> > >> > >>> -- > >>> Uladzislau Rezki > >> > >> -- > >> Thanks, > >> Ye Liu > >> > > Thank you! > > > > I can trigger below: > > > > <snip> > > Aug 25 13:56:52 pc638 kernel: Future hung task reports are suppressed, see sysctl kernel.hung_task_warnings > > Aug 25 13:56:52 pc638 kernel: > > Showing all locks held in the system: > > Aug 25 13:56:52 pc638 kernel: 1 lock held by khungtaskd/488: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3306840 (rcu_read_lock){....}-{1:3}, at: debug_show_all_locks+0x47/0x19b > > Aug 25 13:56:52 pc638 kernel: 3 locks held by kworker/52:1/694: > > Aug 25 13:56:52 pc638 kernel: #0: ffff8ac4401a4140 ((wq_completion)events){+.+.}-{0:0}, at: process_one_work+0x57b/0x600 > > Aug 25 13:56:52 pc638 kernel: #1: ffffce26435ffe30 (drain_vmap_work){+.+.}-{0:0}, at: process_one_work+0x1fc/0x600 > > Aug 25 13:56:52 pc638 kernel: #2: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: drain_vmap_area_work+0x1b/0x40 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by in:imklog/3831: > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/2/5009: > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/4/5011: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/5/5012: > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/8/5015: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/30/5037: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/31/5038: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/38/5045: > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/39/5046: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/41/5048: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/49/5056: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/51/5058: > > Aug 25 13:56:52 pc638 kernel: #0: ffffffffa3406300 (vmap_purge_lock){+.+.}-{4:4}, at: alloc_vmap_area+0x8a8/0xd20 > > Aug 25 13:56:52 pc638 kernel: 1 lock held by vmalloc_test/57/5064: > > ... > > <snip> > > > > I think this is with your patch. But i can check also without. > > One potential issue to inline vnode-drain - is a time. At least > > we need to inject cond_resched() after each vnode flush + > > > > /* > > * Reclaim vmap areas by purging fragmented blocks and purge_vmap_area_list. > > */ > > static void reclaim_and_purge_vmap_areas(void) > > > > { > > mutex_lock(&vmap_purge_lock); > > purge_fragmented_blocks_allcpus(); > > __purge_vmap_area_lazy(ULONG_MAX, 0, true); > > mutex_unlock(&vmap_purge_lock); > > } > > > > here use try-lock as well due to potentially increased flush time. > > > > Any thoughts? > > > > -- > > Uladzislau Rezki > > > IIUC we won't have to do inline purge if we switch both places to use mutex_trylock? > Looks like that. One concern about inline is a CPU hogging by one thread due to slow progress. -- Uladzislau Rezki ^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2026-08-26 8:19 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
[not found] <20260824095020.1225189-1-ye.liu@linux.dev>
2026-08-24 13:19 ` [PATCH] mm/vmalloc: fix vmap_purge_lock livelock under memory pressure Uladzislau Rezki
2026-08-25 1:04 ` Ye Liu
2026-08-25 17:40 ` Uladzislau Rezki
2026-08-26 5:39 ` Dev Jain
2026-08-26 8:19 ` Uladzislau Rezki
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox