Re: [PATCH 2/2] rcu: Fix lockup when RCU reader used while IRQ exiting
From: Xiongfeng Wang
Date: Wed Jun 11 2025 - 23:06:30 EST
+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 ]---