+cc (Qi, my colleague who helps testing the modification) On 2025/6/10 20:23, Frederic Weisbecker wrote: > Le Mon, Jun 09, 2025 at 02:01:24PM -0400, Joel Fernandes a écrit : >> During rcu_read_unlock_special(), if this happens during irq_exit(), we
...skipped... We have tested the below modification without the modification written by Joel using the previous syzkaller benchmark. The kernel still panic. The dmesg log is attached. Thanks, Xiongfeng > > diff --git a/include/linux/irq_work.h b/include/linux/irq_work.h > index 136f2980cba3..4149ed516524 100644 > --- a/include/linux/irq_work.h > +++ b/include/linux/irq_work.h > @@ -57,6 +57,9 @@ static inline bool irq_work_is_hard(struct irq_work *work) > bool irq_work_queue(struct irq_work *work); > bool irq_work_queue_on(struct irq_work *work, int cpu); > > +bool irq_work_kick(void); > +bool irq_work_kick_on(int cpu); > + > void irq_work_tick(void); > void irq_work_sync(struct irq_work *work); > > diff --git a/kernel/irq_work.c b/kernel/irq_work.c > index 73f7e1fd4ab4..383a3e9050d9 100644 > --- a/kernel/irq_work.c > +++ b/kernel/irq_work.c > @@ -181,6 +181,22 @@ bool irq_work_queue_on(struct irq_work *work, int cpu) > #endif /* CONFIG_SMP */ > } > > +static void kick_func(struct irq_work *work) > +{ > +} > + > +static DEFINE_PER_CPU(struct irq_work, kick_work) = > IRQ_WORK_INIT_HARD(kick_func); > + > +bool irq_work_kick(void) > +{ > + return irq_work_queue(this_cpu_ptr(&kick_work)); > +} > + > +bool irq_work_kick_on(int cpu) > +{ > + return irq_work_queue_on(per_cpu_ptr(&kick_work, cpu), cpu); > +} > + > bool irq_work_needs_cpu(void) > { > struct llist_head *raised, *lazy; > diff --git a/kernel/rcu/tree.h b/kernel/rcu/tree.h > index a9a811d9d7a3..b33888071e41 100644 > --- a/kernel/rcu/tree.h > +++ b/kernel/rcu/tree.h > @@ -191,7 +191,6 @@ struct rcu_data { > /* during and after the last grace */ > /* period it is aware of. */ > struct irq_work defer_qs_iw; /* Obtain later scheduler attention. */ > - bool defer_qs_iw_pending; /* Scheduler attention pending? */ > struct work_struct strict_work; /* Schedule readers for strict GPs. */ > > /* 2) batch handling */ > diff --git a/kernel/rcu/tree_plugin.h b/kernel/rcu/tree_plugin.h > index 3c0bbbbb686f..0c7b7c220b46 100644 > --- a/kernel/rcu/tree_plugin.h > +++ b/kernel/rcu/tree_plugin.h > @@ -619,17 +619,6 @@ notrace void rcu_preempt_deferred_qs(struct task_struct > *t) > rcu_preempt_deferred_qs_irqrestore(t, flags); > } > > -/* > - * Minimal handler to give the scheduler a chance to re-evaluate. > - */ > -static void rcu_preempt_deferred_qs_handler(struct irq_work *iwp) > -{ > - struct rcu_data *rdp; > - > - rdp = container_of(iwp, struct rcu_data, defer_qs_iw); > - rdp->defer_qs_iw_pending = false; > -} > - > /* > * Handle special cases during rcu_read_unlock(), such as needing to > * notify RCU core processing or task having blocked during the RCU > @@ -673,18 +662,10 @@ static void rcu_read_unlock_special(struct task_struct > *t) > set_tsk_need_resched(current); > set_preempt_need_resched(); > if (IS_ENABLED(CONFIG_IRQ_WORK) && irqs_were_disabled && > - expboost && !rdp->defer_qs_iw_pending && > cpu_online(rdp->cpu)) { > + expboost && cpu_online(rdp->cpu)) { > // Get scheduler to re-evaluate and call hooks. > // If !IRQ_WORK, FQS scan will eventually IPI. > - if (IS_ENABLED(CONFIG_RCU_STRICT_GRACE_PERIOD) > && > - IS_ENABLED(CONFIG_PREEMPT_RT)) > - rdp->defer_qs_iw = IRQ_WORK_INIT_HARD( > - > rcu_preempt_deferred_qs_handler); > - else > - init_irq_work(&rdp->defer_qs_iw, > - > rcu_preempt_deferred_qs_handler); > - rdp->defer_qs_iw_pending = true; > - irq_work_queue_on(&rdp->defer_qs_iw, rdp->cpu); > + irq_work_kick(); > } > } > local_irq_restore(flags); > diff --git a/kernel/time/tick-sched.c b/kernel/time/tick-sched.c > index c527b421c865..84170656334d 100644 > --- a/kernel/time/tick-sched.c > +++ b/kernel/time/tick-sched.c > @@ -377,14 +377,6 @@ static bool can_stop_full_tick(int cpu, struct > tick_sched *ts) > return true; > } > > -static void nohz_full_kick_func(struct irq_work *work) > -{ > - /* Empty, the tick restart happens on tick_nohz_irq_exit() */ > -} > - > -static DEFINE_PER_CPU(struct irq_work, nohz_full_kick_work) = > - IRQ_WORK_INIT_HARD(nohz_full_kick_func); > - > /* > * Kick this CPU if it's full dynticks in order to force it to > * re-evaluate its dependency on the tick and restart it if necessary. > @@ -396,7 +388,7 @@ static void tick_nohz_full_kick(void) > if (!tick_nohz_full_cpu(smp_processor_id())) > return; > > - irq_work_queue(this_cpu_ptr(&nohz_full_kick_work)); > + irq_work_kick(); > } > > /* > @@ -408,7 +400,7 @@ void tick_nohz_full_kick_cpu(int cpu) > if (!tick_nohz_full_cpu(cpu)) > return; > > - irq_work_queue_on(&per_cpu(nohz_full_kick_work, cpu), cpu); > + irq_work_kick_on(cpu); > } > > static void tick_nohz_kick_task(struct task_struct *tsk) > > > >
[ 2392.445785][T72129] e1000 0000:00:03.0 ens3: Reset adapter [ 2444.656512][ C0] rcu: INFO: rcu_preempt detected stalls on CPUs/tasks: [ 2444.657196][ C0] rcu: 2-....: (0 ticks this GP) idle=a31c/1/0x4000000000000000 softirq=281524/281524 fqs=24874 [ 2444.658112][ C0] rcu: (detected by 0, t=60002 jiffies, g=720513, q=257232 ncpus=4) [ 2444.658802][ C0] Sending NMI from CPU 0 to CPUs 2: [ 2444.659275][ C2] NMI backtrace for cpu 2 [ 2444.659283][ C2] CPU: 2 PID: 85034 Comm: syz.11.10669 Not tainted 6.6.0+ #10 [ 2444.659305][ C2] Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015 [ 2444.659310][ C2] RIP: 0010:__sanitizer_cov_trace_pc+0x42/0x80 [ 2444.659333][ C2] Code: a9 00 01 ff 00 74 1d f6 c4 01 74 4a a9 00 00 0f 00 75 43 a9 00 00 f0 00 75 3c 8b 82 c4 14 00 00 85 c0 74 32 8b 82 a0 14 00 00 <83> f8 02 75 27 48 8b b2 a8 14 00 00 8b 92 a4 14 00 00 48 8b 06 48 [ 2444.659343][ C2] RSP: 0018:ff11000119909e08 EFLAGS: 00000046 [ 2444.659351][ C2] RAX: 0000000000000000 RBX: ff1100011993e380 RCX: ffffffff9fa11001 [ 2444.659357][ C2] RDX: ff11000112ac0000 RSI: 00000000000000f6 RDI: 000000000000003f [ 2444.659362][ C2] RBP: 0000000012ac0001 R08: 0000000000000001 R09: ffe21c00233213b3 [ 2444.659368][ C2] R10: 0000000000000001 R11: ff11000119909ff8 R12: 1fe22000233213ca [ 2444.659374][ C2] R13: ffa0000005c15028 R14: dffffc0000000000 R15: 0000000000000000 [ 2444.659379][ C2] FS: 00007ffaad1b86c0(0000) GS:ff11000119900000(0000) knlGS:0000000000000000 [ 2444.659389][ C2] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2444.659395][ C2] CR2: 0000000000638300 CR3: 000000002c596003 CR4: 0000000000771ee0 [ 2444.659401][ C2] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2444.659406][ C2] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2444.659412][ C2] PKRU: 00000000 [ 2444.659414][ C2] Call Trace: [ 2444.659418][ C2] <IRQ> [ 2444.659421][ C2] __irq_work_queue_local+0xc1/0x290 [ 2444.659436][ C2] irq_work_kick+0x53/0x80 [ 2444.659446][ C2] bpf_trace_run2+0xf7/0x220 [ 2444.659458][ C2] ? __pfx_bpf_trace_run2+0x10/0x10 [ 2444.659470][ C2] __bpf_trace_tick_stop+0xb4/0xf0 [ 2444.659479][ C2] ? __pfx___bpf_trace_tick_stop+0x10/0x10 [ 2444.659488][ C2] ? __pfx_sched_clock_cpu+0x10/0x10 [ 2444.659504][ C2] ? rcu_iw_handler+0x41/0xf0 [ 2444.659519][ C2] check_tick_dependency+0x362/0x670 [ 2444.659534][ C2] __tick_nohz_full_update_tick+0xd1/0x220 [ 2444.659551][ C2] tick_nohz_irq_exit+0x22c/0x2a0 [ 2444.659561][ C2] sysvec_irq_work+0x6a/0x80 [ 2444.659577][ C2] </IRQ> [ 2444.659579][ C2] <TASK> [ 2444.659582][ C2] asm_sysvec_irq_work+0x1a/0x20 [ 2444.659597][ C2] RIP: 0010:rcu_read_unlock_special+0x112/0x280 [ 2444.659609][ C2] Code: 05 2b 69 92 60 a9 00 00 0f 00 75 40 4d 85 f6 0f 84 af 00 00 00 45 84 e4 0f 84 a6 00 00 00 bf 09 00 00 00 e8 d0 47 df ff fb 5b <5d> 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 5b 5d 41 5c 41 5d 41 5e [ 2444.659618][ C2] RSP: 0018:ff1100002d606f38 EFLAGS: 00000283 [ 2444.659625][ C2] RAX: 0000000000000001 RBX: 0000000000000000 RCX: 1fe2200023328c49 [ 2444.659630][ C2] RDX: 0000000000000001 RSI: 0000000000000046 RDI: ff11000100f33084 [ 2444.659636][ C2] RBP: ff11000119946680 R08: 0000000000000000 R09: fffffbfff5ad6a54 [ 2444.659641][ C2] R10: 0000000000000000 R11: 0000000000000001 R12: 0000000080000001 [ 2444.659646][ C2] R13: dffffc0000000000 R14: 0000000000000200 R15: ffffffffabd42f80 [ 2444.659658][ C2] page_vma_mapped_walk+0x1830/0x2220 [ 2444.659677][ C2] ? __pfx_page_vma_mapped_walk+0x10/0x10 [ 2444.659691][ C2] ? __lruvec_stat_mod_folio+0x13f/0x1e0 [ 2444.659704][ C2] ? folio_add_anon_rmap_ptes+0x1ab/0x2c0 [ 2444.659717][ C2] remove_migration_pte+0x1d9/0xfb0 [ 2444.659734][ C2] ? __pfx_remove_migration_pte+0x10/0x10 [ 2444.659750][ C2] ? __anon_vma_interval_tree_subtree_search+0x171/0x1f0 [ 2444.659766][ C2] ? __pfx_remove_migration_pte+0x10/0x10 [ 2444.659781][ C2] rmap_walk_anon+0x2b0/0x980 [ 2444.659795][ C2] rmap_walk_locked+0x5d/0x90 [ 2444.659808][ C2] remove_migration_ptes+0xcc/0x130 [ 2444.659818][ C2] ? __pfx_remove_migration_ptes+0x10/0x10 [ 2444.659829][ C2] ? __pfx_remove_migration_pte+0x10/0x10 [ 2444.659843][ C2] ? _raw_spin_lock+0x85/0xe0 [ 2444.659858][ C2] remap_page.part.0+0xb5/0x170 [ 2444.659874][ C2] __split_huge_page+0xb05/0x13d0 [ 2444.659887][ C2] split_huge_page_to_list_to_order+0x12f3/0x17f0 [ 2444.659902][ C2] ? __pfx_split_huge_page_to_list_to_order+0x10/0x10 [ 2444.659916][ C2] ? __cgroup_account_cputime+0x8d/0xc0 [ 2444.659929][ C2] madvise_cold_or_pageout_pte_range+0x1966/0x2450 [ 2444.659943][ C2] ? enqueue_entity+0xe1c/0x33d0 [ 2444.659956][ C2] ? __pfx_madvise_cold_or_pageout_pte_range+0x10/0x10 [ 2444.659968][ C2] ? check_preempt_wakeup_fair+0x435/0x760 [ 2444.659980][ C2] ? wakeup_preempt+0x193/0x260 [ 2444.659994][ C2] ? __pfx_madvise_cold_or_pageout_pte_range+0x10/0x10 [ 2444.660006][ C2] walk_pmd_range.isra.0+0x240/0x720 [ 2444.660024][ C2] walk_pud_range.isra.0+0x3d3/0x6c0 [ 2444.660041][ C2] walk_p4d_range+0x2ef/0x4f0 [ 2444.660057][ C2] walk_pgd_range+0x27e/0x530 [ 2444.660073][ C2] __walk_page_range+0x4ab/0x5a0 [ 2444.660094][ C2] ? find_vma+0x81/0xb0 [ 2444.660109][ C2] ? __pfx_find_vma+0x10/0x10 [ 2444.660123][ C2] ? folios_put_refs+0x510/0x740 [ 2444.660132][ C2] ? walk_page_test+0xa0/0x190 [ 2444.660147][ C2] walk_page_range+0x2a0/0x530 [ 2444.660162][ C2] ? __pfx_walk_page_range+0x10/0x10 [ 2444.660179][ C2] ? folio_batch_move_lru+0x2b8/0x3d0 [ 2444.660187][ C2] ? __pfx_lru_add_fn+0x10/0x10 [ 2444.660196][ C2] madvise_pageout_page_range+0x1cc/0x6d0 [ 2444.660209][ C2] ? __pfx_madvise_pageout_page_range+0x10/0x10 [ 2444.660223][ C2] madvise_pageout+0x1f4/0x400 [ 2444.660235][ C2] ? __pfx_madvise_pageout+0x10/0x10 [ 2444.660248][ C2] ? futex_wait+0x552/0x680 [ 2444.660262][ C2] ? __sanitizer_cov_trace_switch+0x54/0x90 [ 2444.660278][ C2] ? __sanitizer_cov_trace_switch+0x54/0x90 [ 2444.660293][ C2] ? mas_prev_setup.constprop.0+0xb4/0x530 [ 2444.660310][ C2] madvise_vma_behavior+0x8fa/0xe30 [ 2444.660324][ C2] ? __pfx_madvise_vma_behavior+0x10/0x10 [ 2444.660336][ C2] ? find_vma_prev+0xf5/0x170 [ 2444.660345][ C2] ? __pfx_find_vma_prev+0x10/0x10 [ 2444.660356][ C2] ? do_madvise+0x4d8/0x650 [ 2444.660369][ C2] do_madvise+0x3af/0x650 [ 2444.660381][ C2] ? __pfx_do_madvise+0x10/0x10 [ 2444.660393][ C2] ? __se_sys_futex+0xf7/0x390 [ 2444.660405][ C2] ? __se_sys_futex+0x100/0x390 [ 2444.660417][ C2] ? __pfx___se_sys_futex+0x10/0x10 [ 2444.660430][ C2] ? restore_fpregs_from_fpstate+0x40/0x100 [ 2444.660447][ C2] __x64_sys_madvise+0xaf/0x120 [ 2444.660459][ C2] ? syscall_exit_to_user_mode+0x12e/0x1e0 [ 2444.660473][ C2] ? __ct_user_exit+0x1c/0xe0 [ 2444.660486][ C2] do_syscall_64+0x59/0x110 [ 2444.660501][ C2] entry_SYSCALL_64_after_hwframe+0x78/0xe2 [ 2444.660514][ C2] RIP: 0033:0x54d2cd [ 2444.660537][ C2] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48 [ 2444.660546][ C2] RSP: 002b:00007ffaad1b8048 EFLAGS: 00000246 ORIG_RAX: 000000000000001c [ 2444.660554][ C2] RAX: ffffffffffffffda RBX: 0000000000795fa0 RCX: 000000000054d2cd [ 2444.660560][ C2] RDX: 0000000000000015 RSI: 0000000000003000 RDI: 0000000020001000 [ 2444.660565][ C2] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 [ 2444.660570][ C2] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000795fac [ 2444.660575][ C2] R13: 0000000000000000 R14: 0000000000795fa0 R15: 00007ffaad198000 [ 2444.660584][ C2] </TASK> [ 2581.883413][ C0] watchdog: BUG: soft lockup - CPU#0 stuck for 186s! [kworker/0:4:72129] [ 2581.884169][ C0] Modules linked in: [ 2581.884506][ C0] CPU: 0 PID: 72129 Comm: kworker/0:4 Not tainted 6.6.0+ #10 [ 2581.885124][ C0] Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015 [ 2581.885871][ C0] Workqueue: events e1000_reset_task [ 2581.886336][ C0] RIP: 0010:_raw_spin_unlock_irqrestore+0x43/0x80 [ 2581.886891][ C0] Code: fa 48 c1 ea 03 0f b6 04 02 48 89 fa 83 e2 07 38 d0 7f 04 84 c0 75 2c c6 07 00 f7 c6 00 02 00 00 74 01 fb 65 ff 0d f5 2f 05 58 <74> 09 48 83 c4 10 c3 cc cc cc cc 0f 1f 44 00 00 48 83 c4 10 c3 cc [ 2581.888516][ C0] RSP: 0018:ff11000032d5fb40 EFLAGS: 00000246 [ 2581.889016][ C0] RAX: 0000000000000000 RBX: 0000000000000246 RCX: ffffffff9f6d869d [ 2581.889665][ C0] RDX: 0000000000000004 RSI: 0000000000000246 RDI: ff11000100a940b4 [ 2581.890333][ C0] RBP: ff11000100a94000 R08: 0000000000000001 R09: ffe21c00065abf54 [ 2581.890991][ C0] R10: 0000000000000003 R11: 0000000000000020 R12: ffe21c0020152809 [ 2581.891646][ C0] R13: dffffc0000000000 R14: ff11000100a940b4 R15: 0000000000000001 [ 2581.892318][ C0] FS: 0000000000000000(0000) GS:ff11000119800000(0000) knlGS:0000000000000000 [ 2581.893069][ C0] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2581.893639][ C0] CR2: 000000001bfad4b0 CR3: 000000010833c002 CR4: 0000000000771ef0 [ 2581.894308][ C0] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2581.894932][ C0] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2581.895554][ C0] PKRU: 55555554 [ 2581.895859][ C0] Call Trace: [ 2581.896136][ C0] <TASK> [ 2581.896375][ C0] __synchronize_hardirq+0x168/0x230 [ 2581.896807][ C0] ? __pfx___synchronize_hardirq+0x10/0x10 [ 2581.897295][ C0] ? schedule_timeout+0x4c1/0x770 [ 2581.897713][ C0] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 2581.898182][ C0] ? __sanitizer_cov_trace_switch+0x54/0x90 [ 2581.898693][ C0] __synchronize_irq+0x96/0x200 [ 2581.899127][ C0] ? __pfx___synchronize_irq+0x10/0x10 [ 2581.899595][ C0] ? __pfx_napi_disable+0x10/0x10 [ 2581.900034][ C0] ? linkwatch_schedule_work+0x189/0x1d0 [ 2581.900511][ C0] ? linkwatch_fire_event+0x6e/0x270 [ 2581.900975][ C0] synchronize_irq+0x2d/0x40 [ 2581.901365][ C0] e1000_down+0x3bc/0x790 [ 2581.901741][ C0] ? e1000_reset_task+0x66/0xb0 [ 2581.902170][ C0] e1000_reinit_locked+0xd0/0xf0 [ 2581.902599][ C0] process_one_work+0x661/0x1020 [ 2581.903023][ C0] worker_thread+0x849/0x1090 [ 2581.903450][ C0] ? __kthread_parkme+0x10d/0x190 [ 2581.903882][ C0] ? __pfx_worker_thread+0x10/0x10 [ 2581.904338][ C0] kthread+0x2f4/0x3f0 [ 2581.904686][ C0] ? __pfx_kthread+0x10/0x10 [ 2581.905105][ C0] ret_from_fork+0x4a/0x80 [ 2581.905492][ C0] ? __pfx_kthread+0x10/0x10 [ 2581.905894][ C0] ret_from_fork_asm+0x1b/0x30 [ 2581.906308][ C0] </TASK> [ 2581.906583][ C0] Sending NMI from CPU 0 to CPUs 1-3: [ 2581.907051][ C2] NMI backtrace for cpu 2 [ 2581.907059][ C2] CPU: 2 PID: 85034 Comm: syz.11.10669 Not tainted 6.6.0+ #10 [ 2581.907070][ C2] Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015 [ 2581.907075][ C2] RIP: 0010:native_apic_msr_write+0x28/0x40 [ 2581.907100][ C2] Code: 90 90 f3 0f 1e fa 8d 87 30 ff ff ff 83 e0 ef 74 20 89 f8 83 e0 ef 83 f8 20 74 16 c1 ef 04 31 d2 89 f0 8d 8f 00 08 00 00 0f 30 <66> 90 c3 cc cc cc cc c3 cc cc cc cc 89 f6 31 d2 89 cf e9 91 82 e9 [ 2581.907110][ C2] RSP: 0018:ff11000119909cb0 EFLAGS: 00000046 [ 2581.907118][ C2] RAX: 00000000000000f6 RBX: 0000000000000001 RCX: 000000000000083f [ 2581.907124][ C2] RDX: 0000000000000000 RSI: 00000000000000f6 RDI: 000000000000003f [ 2581.907130][ C2] RBP: 0000000012ac0001 R08: 0000000000000001 R09: ffe21c002332138a [ 2581.907136][ C2] R10: 0000000000000001 R11: 0000000000000000 R12: 1fe22000233213a1 [ 2581.907141][ C2] R13: ffa0000005c15028 R14: dffffc0000000000 R15: 0000000000000000 [ 2581.907147][ C2] FS: 00007ffaad1b86c0(0000) GS:ff11000119900000(0000) knlGS:0000000000000000 [ 2581.907158][ C2] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033 [ 2581.907164][ C2] CR2: 0000000000638300 CR3: 000000002c596003 CR4: 0000000000771ee0 [ 2581.907170][ C2] DR0: 0000000000000000 DR1: 0000000000000000 DR2: 0000000000000000 [ 2581.907176][ C2] DR3: 0000000000000000 DR6: 00000000fffe0ff0 DR7: 0000000000000400 [ 2581.907181][ C2] PKRU: 00000000 [ 2581.907184][ C2] Call Trace: [ 2581.907189][ C2] <IRQ> [ 2581.907192][ C2] arch_irq_work_raise+0x54/0x70 [ 2581.907205][ C2] __irq_work_queue_local+0xc1/0x290 [ 2581.907218][ C2] irq_work_kick+0x53/0x80 [ 2581.907229][ C2] bpf_trace_run2+0xf7/0x220 [ 2581.907240][ C2] ? __pfx_bpf_trace_run2+0x10/0x10 [ 2581.907251][ C2] ? read_tsc+0x9/0x20 [ 2581.907260][ C2] ? ktime_get+0xfd/0x160 [ 2581.907275][ C2] __bpf_trace_tick_stop+0xb4/0xf0 [ 2581.907285][ C2] ? __pfx___bpf_trace_tick_stop+0x10/0x10 [ 2581.907294][ C2] ? __pfx_sched_clock_cpu+0x10/0x10 [ 2581.907310][ C2] ? hrtimer_interrupt+0x57f/0x7a0 [ 2581.907324][ C2] check_tick_dependency+0x362/0x670 [ 2581.907340][ C2] __tick_nohz_full_update_tick+0xd1/0x220 [ 2581.907357][ C2] tick_nohz_irq_exit+0x22c/0x2a0 [ 2581.907367][ C2] sysvec_irq_work+0x36/0x80 [ 2581.907379][ C2] asm_sysvec_irq_work+0x1a/0x20 [ 2581.907394][ C2] RIP: 0010:handle_softirqs+0x12b/0x580 [ 2581.907408][ C2] Code: c1 e8 03 44 89 74 24 30 4c 01 e8 44 89 7c 24 2c 48 89 44 24 20 48 89 6c 24 18 65 66 c7 05 b3 2b b3 60 00 00 fb bb ff ff ff ff <48> c7 c0 c0 a0 80 ab 41 0f bc dc 83 c3 01 49 89 c2 0f 84 8e 00 00 [ 2581.907417][ C2] RSP: 0018:ff11000119909f70 EFLAGS: 00000286 [ 2581.907424][ C2] RAX: ffe21c0022558000 RBX: 00000000ffffffff RCX: 1fe22000233261bc [ 2581.907430][ C2] RDX: dffffc0000000000 RSI: 0000000000000000 RDI: ff11000119930de0 [ 2581.907435][ C2] RBP: ff11000112ac0000 R08: 0000000000000001 R09: ffe21c0023326219 [ 2581.907441][ C2] R10: 0000000000000000 R11: 3030303030302052 R12: 0000000000000200 [ 2581.907446][ C2] R13: dffffc0000000000 R14: 0000000000400140 R15: 000000000000000a [ 2581.907459][ C2] irq_exit_rcu+0x134/0x190 [ 2581.907472][ C2] sysvec_irq_work+0x6a/0x80 [ 2581.907482][ C2] </IRQ> [ 2581.907485][ C2] <TASK> [ 2581.907487][ C2] asm_sysvec_irq_work+0x1a/0x20 [ 2581.907502][ C2] RIP: 0010:rcu_read_unlock_special+0x112/0x280 [ 2581.907514][ C2] Code: 05 2b 69 92 60 a9 00 00 0f 00 75 40 4d 85 f6 0f 84 af 00 00 00 45 84 e4 0f 84 a6 00 00 00 bf 09 00 00 00 e8 d0 47 df ff fb 5b <5d> 41 5c 41 5d 41 5e 41 5f c3 cc cc cc cc 5b 5d 41 5c 41 5d 41 5e [ 2581.907523][ C2] RSP: 0018:ff1100002d606f38 EFLAGS: 00000283 [ 2581.907529][ C2] RAX: 0000000000000001 RBX: 0000000000000000 RCX: 1fe2200023328c49 [ 2581.907535][ C2] RDX: 0000000000000001 RSI: 0000000000000046 RDI: ff11000100f33084 [ 2581.907541][ C2] RBP: ff11000119946680 R08: 0000000000000000 R09: fffffbfff5ad6a54 [ 2581.907546][ C2] R10: 0000000000000000 R11: 0000000000000001 R12: 0000000080000001 [ 2581.907552][ C2] R13: dffffc0000000000 R14: 0000000000000200 R15: ffffffffabd42f80 [ 2581.907563][ C2] page_vma_mapped_walk+0x1830/0x2220 [ 2581.907583][ C2] ? __pfx_page_vma_mapped_walk+0x10/0x10 [ 2581.907598][ C2] ? __lruvec_stat_mod_folio+0x13f/0x1e0 [ 2581.907612][ C2] ? folio_add_anon_rmap_ptes+0x1ab/0x2c0 [ 2581.907625][ C2] remove_migration_pte+0x1d9/0xfb0 [ 2581.907642][ C2] ? __pfx_remove_migration_pte+0x10/0x10 [ 2581.907659][ C2] ? __anon_vma_interval_tree_subtree_search+0x171/0x1f0 [ 2581.907675][ C2] ? __pfx_remove_migration_pte+0x10/0x10 [ 2581.907690][ C2] rmap_walk_anon+0x2b0/0x980 [ 2581.907703][ C2] rmap_walk_locked+0x5d/0x90 [ 2581.907717][ C2] remove_migration_ptes+0xcc/0x130 [ 2581.907727][ C2] ? __pfx_remove_migration_ptes+0x10/0x10 [ 2581.907737][ C2] ? __pfx_remove_migration_pte+0x10/0x10 [ 2581.907753][ C2] ? _raw_spin_lock+0x85/0xe0 [ 2581.907767][ C2] remap_page.part.0+0xb5/0x170 [ 2581.907783][ C2] __split_huge_page+0xb05/0x13d0 [ 2581.907796][ C2] split_huge_page_to_list_to_order+0x12f3/0x17f0 [ 2581.907811][ C2] ? __pfx_split_huge_page_to_list_to_order+0x10/0x10 [ 2581.907826][ C2] ? __cgroup_account_cputime+0x8d/0xc0 [ 2581.907838][ C2] madvise_cold_or_pageout_pte_range+0x1966/0x2450 [ 2581.907853][ C2] ? enqueue_entity+0xe1c/0x33d0 [ 2581.907866][ C2] ? __pfx_madvise_cold_or_pageout_pte_range+0x10/0x10 [ 2581.907879][ C2] ? check_preempt_wakeup_fair+0x435/0x760 [ 2581.907891][ C2] ? wakeup_preempt+0x193/0x260 [ 2581.907905][ C2] ? __pfx_madvise_cold_or_pageout_pte_range+0x10/0x10 [ 2581.907917][ C2] walk_pmd_range.isra.0+0x240/0x720 [ 2581.907936][ C2] walk_pud_range.isra.0+0x3d3/0x6c0 [ 2581.907953][ C2] walk_p4d_range+0x2ef/0x4f0 [ 2581.907969][ C2] walk_pgd_range+0x27e/0x530 [ 2581.907985][ C2] __walk_page_range+0x4ab/0x5a0 [ 2581.908001][ C2] ? find_vma+0x81/0xb0 [ 2581.908015][ C2] ? __pfx_find_vma+0x10/0x10 [ 2581.908029][ C2] ? folios_put_refs+0x510/0x740 [ 2581.908038][ C2] ? walk_page_test+0xa0/0x190 [ 2581.908053][ C2] walk_page_range+0x2a0/0x530 [ 2581.908069][ C2] ? __pfx_walk_page_range+0x10/0x10 [ 2581.908086][ C2] ? folio_batch_move_lru+0x2b8/0x3d0 [ 2581.908100][ C2] ? __pfx_lru_add_fn+0x10/0x10 [ 2581.908109][ C2] madvise_pageout_page_range+0x1cc/0x6d0 [ 2581.908122][ C2] ? __pfx_madvise_pageout_page_range+0x10/0x10 [ 2581.908137][ C2] madvise_pageout+0x1f4/0x400 [ 2581.908148][ C2] ? __pfx_madvise_pageout+0x10/0x10 [ 2581.908161][ C2] ? futex_wait+0x552/0x680 [ 2581.908176][ C2] ? __sanitizer_cov_trace_switch+0x54/0x90 [ 2581.908192][ C2] ? __sanitizer_cov_trace_switch+0x54/0x90 [ 2581.908207][ C2] ? mas_prev_setup.constprop.0+0xb4/0x530 [ 2581.908224][ C2] madvise_vma_behavior+0x8fa/0xe30 [ 2581.908238][ C2] ? __pfx_madvise_vma_behavior+0x10/0x10 [ 2581.908250][ C2] ? find_vma_prev+0xf5/0x170 [ 2581.908259][ C2] ? __pfx_find_vma_prev+0x10/0x10 [ 2581.908270][ C2] ? do_madvise+0x4d8/0x650 [ 2581.908283][ C2] do_madvise+0x3af/0x650 [ 2581.908295][ C2] ? __pfx_do_madvise+0x10/0x10 [ 2581.908307][ C2] ? __se_sys_futex+0xf7/0x390 [ 2581.908319][ C2] ? __se_sys_futex+0x100/0x390 [ 2581.908332][ C2] ? __pfx___se_sys_futex+0x10/0x10 [ 2581.908344][ C2] ? restore_fpregs_from_fpstate+0x40/0x100 [ 2581.908361][ C2] __x64_sys_madvise+0xaf/0x120 [ 2581.908373][ C2] ? syscall_exit_to_user_mode+0x12e/0x1e0 [ 2581.908387][ C2] ? __ct_user_exit+0x1c/0xe0 [ 2581.908400][ C2] do_syscall_64+0x59/0x110 [ 2581.908415][ C2] entry_SYSCALL_64_after_hwframe+0x78/0xe2 [ 2581.908428][ C2] RIP: 0033:0x54d2cd [ 2581.908456][ C2] Code: ff c3 66 2e 0f 1f 84 00 00 00 00 00 90 f3 0f 1e fa 48 89 f8 48 89 f7 48 89 d6 48 89 ca 4d 89 c2 4d 89 c8 4c 8b 4c 24 08 0f 05 <48> 3d 01 f0 ff ff 73 01 c3 48 c7 c1 b0 ff ff ff f7 d8 64 89 01 48 [ 2581.908465][ C2] RSP: 002b:00007ffaad1b8048 EFLAGS: 00000246 ORIG_RAX: 000000000000001c [ 2581.908473][ C2] RAX: ffffffffffffffda RBX: 0000000000795fa0 RCX: 000000000054d2cd [ 2581.908479][ C2] RDX: 0000000000000015 RSI: 0000000000003000 RDI: 0000000020001000 [ 2581.908484][ C2] RBP: 0000000000000000 R08: 0000000000000000 R09: 0000000000000000 [ 2581.908489][ C2] R10: 0000000000000000 R11: 0000000000000246 R12: 0000000000795fac [ 2581.908495][ C2] R13: 0000000000000000 R14: 0000000000795fa0 R15: 00007ffaad198000 [ 2581.908504][ C2] </TASK> [ 2581.908508][ C1] NMI backtrace for cpu 1 skipped: idling at default_idle+0xf/0x20 [ 2581.908563][ C3] NMI backtrace for cpu 3 skipped: idling at default_idle+0xf/0x20 [ 2581.909034][ C0] Kernel panic - not syncing: softlockup: hung tasks [ 2581.909039][ C0] CPU: 0 PID: 72129 Comm: kworker/0:4 Tainted: G L 6.6.0+ #10 [ 2581.909048][ C0] Hardware name: QEMU Ubuntu 24.04 PC (i440FX + PIIX, 1996), BIOS 0.0.0 02/06/2015 [ 2581.909053][ C0] Workqueue: events e1000_reset_task [ 2581.909066][ C0] Call Trace: [ 2581.909069][ C0] <IRQ> [ 2581.909072][ C0] dump_stack_lvl+0x72/0xa0 [ 2581.909086][ C0] panic+0x64b/0x6e0 [ 2581.909102][ C0] ? __pfx_panic+0x10/0x10 [ 2581.909111][ C0] ? irq_work_claim+0x76/0xa0 [ 2581.909122][ C0] ? irq_work_queue+0x2a/0x70 [ 2581.909132][ C0] ? watchdog_timer_fn+0x3af/0x450 [ 2581.909142][ C0] watchdog_timer_fn+0x3c0/0x450 [ 2581.909151][ C0] ? __pfx_watchdog_timer_fn+0x10/0x10 [ 2581.909160][ C0] __run_hrtimer+0x13c/0x6b0 [ 2581.909173][ C0] __hrtimer_run_queues+0x170/0x290 [ 2581.909187][ C0] ? __pfx___hrtimer_run_queues+0x10/0x10 [ 2581.909199][ C0] ? read_tsc+0x9/0x20 [ 2581.909206][ C0] ? ktime_get_update_offsets_now+0x213/0x2f0 [ 2581.909218][ C0] hrtimer_interrupt+0x2ed/0x7a0 [ 2581.909233][ C0] __sysvec_apic_timer_interrupt+0x83/0x250 [ 2581.909245][ C0] sysvec_apic_timer_interrupt+0x65/0x80 [ 2581.909258][ C0] </IRQ> [ 2581.909260][ C0] <TASK> [ 2581.909263][ C0] asm_sysvec_apic_timer_interrupt+0x1a/0x20 [ 2581.909278][ C0] RIP: 0010:_raw_spin_unlock_irqrestore+0x43/0x80 [ 2581.909291][ C0] Code: fa 48 c1 ea 03 0f b6 04 02 48 89 fa 83 e2 07 38 d0 7f 04 84 c0 75 2c c6 07 00 f7 c6 00 02 00 00 74 01 fb 65 ff 0d f5 2f 05 58 <74> 09 48 83 c4 10 c3 cc cc cc cc 0f 1f 44 00 00 48 83 c4 10 c3 cc [ 2581.909300][ C0] RSP: 0018:ff11000032d5fb40 EFLAGS: 00000246 [ 2581.909307][ C0] RAX: 0000000000000000 RBX: 0000000000000246 RCX: ffffffff9f6d869d [ 2581.909312][ C0] RDX: 0000000000000004 RSI: 0000000000000246 RDI: ff11000100a940b4 [ 2581.909317][ C0] RBP: ff11000100a94000 R08: 0000000000000001 R09: ffe21c00065abf54 [ 2581.909323][ C0] R10: 0000000000000003 R11: 0000000000000020 R12: ffe21c0020152809 [ 2581.909328][ C0] R13: dffffc0000000000 R14: ff11000100a940b4 R15: 0000000000000001 [ 2581.909335][ C0] ? __synchronize_hardirq+0x15d/0x230 [ 2581.909349][ C0] __synchronize_hardirq+0x168/0x230 [ 2581.909361][ C0] ? __pfx___synchronize_hardirq+0x10/0x10 [ 2581.909372][ C0] ? schedule_timeout+0x4c1/0x770 [ 2581.909383][ C0] ? __pfx_ref_tracker_alloc+0x10/0x10 [ 2581.909397][ C0] ? __sanitizer_cov_trace_switch+0x54/0x90 [ 2581.909413][ C0] __synchronize_irq+0x96/0x200 [ 2581.909425][ C0] ? __pfx___synchronize_irq+0x10/0x10 [ 2581.909437][ C0] ? __pfx_napi_disable+0x10/0x10 [ 2581.909447][ C0] ? linkwatch_schedule_work+0x189/0x1d0 [ 2581.909462][ C0] ? linkwatch_fire_event+0x6e/0x270 [ 2581.909471][ C0] synchronize_irq+0x2d/0x40 [ 2581.909482][ C0] e1000_down+0x3bc/0x790 [ 2581.909496][ C0] ? e1000_reset_task+0x66/0xb0 [ 2581.909510][ C0] e1000_reinit_locked+0xd0/0xf0 [ 2581.999836][ C0] process_one_work+0x661/0x1020 [ 2582.000262][ C0] worker_thread+0x849/0x1090 [ 2582.000663][ C0] ? __kthread_parkme+0x10d/0x190 [ 2582.001084][ C0] ? __pfx_worker_thread+0x10/0x10 [ 2582.001525][ C0] kthread+0x2f4/0x3f0 [ 2582.001874][ C0] ? __pfx_kthread+0x10/0x10 [ 2582.002270][ C0] ret_from_fork+0x4a/0x80 [ 2582.002643][ C0] ? __pfx_kthread+0x10/0x10 [ 2582.003030][ C0] ret_from_fork_asm+0x1b/0x30 [ 2582.003684][ C0] </TASK> [ 2582.004763][ C0] Kernel Offset: disabled [ 2582.005129][ C0] ---[ end Kernel panic - not syncing: softlockup: hung tasks ]---