On Thu, Oct 08, 2026 at 09:39:50AM +0800, KunWu Chan wrote:
> On Wed, Oct 7, 2026 at 11:59 PM Paul E. McKenney <[email protected]> wrote:
> >
> > On Wed, Oct 07, 2026 at 03:09:27AM -0400, Mathieu Desnoyers wrote:
> > > On 2026-10-06 19:40, Paul E. McKenney wrote:
> > > > Hello!
> > > >
> > > > This is all new code, so the bug could be anywhere. So you all need
> > > > to know. ;-)
TL;DR: Adding the first patch in Mathieu's four-patch series cures this
for me.
> > > > I got this from the NOPREEMPT variant of hazptr during a nominal
> > > > "--duration 60" run of torture.sh on x86 with the guest OS split across
> > > > two NUMA nodes:
> > > >
> > > > [ 137.765104] WARNING: kernel/rcu/hazptrtorture.c:658 at
> > > > hazptr_torture_stats_print+0x25b/0x4f0, CPU#1: hazptr_torture_/136
> > > > [ 137.768647] Modules linked in:
> > > > [ 137.768891] CPU: 1 UID: 0 PID: 136 Comm: hazptr_torture_ Not tainted
> > > > 7.3.0-rc5-00661-ga1f1e4890d1d-dirty #193 PREEMPTLAZY
> > > > [ 137.769683] Hardware name: QEMU Standard PC (Q35 + ICH9, 2009), BIOS
> > > > 1.16.3-6.el9 11/05/2023
> > > > [ 137.770319] RIP: 0010:hazptr_torture_stats_print+0x25b/0x4f0
> > > > [ 137.770735] Code: 48 83 c4 20 e8 86 44 fe ff 41 83 fd 01 7e 23 48 c7
> > > > c6 6e 85 17 b0 48 c7 c7 db 27 17 b0 e8 6d 44 fe ff f0 ff 05 76 6e 0a 02
> > > > 90 <0f> 0b 90 4c 8b 64 24 70 48 c7 c7 73 85 17 b0 e8 51 44 fe ff 48 8b
> > > > [ 137.772061] RSP: 0018:ffffa738004ffdf0 EFLAGS: 00010202
> > > > [ 137.772435] RAX: 0000000000000004 RBX: ffffa738004ffe08 RCX:
> > > > 0000000000000027
> > > > [ 137.772950] RDX: 0000000000000000 RSI: 0000000000000000 RDI:
> > > > 0000000000000001
> > > > [ 137.773455] RBP: ffffa738004ffe60 R08: 4000000000001236 R09:
> > > > ffffffffb01727df
> > > > [ 137.773980] R10: 0000000020212121 R11: 0000000020212121 R12:
> > > > 0000000000000000
> > > > [ 137.774479] R13: 0000000000000002 R14: 000000000002ffd6 R15:
> > > > 0000000000034f03
> > > > [ 137.775000] FS: 0000000000000000(0000) GS:ffff999c2e502000(0000)
> > > > knlGS:0000000000000000
> > > > [ 137.775578] CS: 0010 DS: 0000 ES: 0000 CR0: 0000000080050033
> > > > [ 137.776001] CR2: 0000000000000000 CR3: 0000000008830000 CR4:
> > > > 00000000000006f0
> > > > [ 137.776512] Call Trace:
> > > > [ 137.776700] <TASK>
> > > > [ 137.776863] ? __pfx_hazptr_torture_stats+0x10/0x10
> > > > [ 137.777207] hazptr_torture_stats+0x25/0x70
> > > > [ 137.777508] kthread+0xd9/0x110
> > > > [ 137.777751] ? __pfx_kthread+0x10/0x10
> > > > [ 137.778017] ret_from_fork+0x1bd/0x220
> > > > [ 137.778285] ? __pfx_kthread+0x10/0x10
> > > > [ 137.778560] ret_from_fork_asm+0x1a/0x30
> > > > [ 137.778849] </TASK>
> > > > [ 137.779007] ---[ end trace 0000000000000000 ]---
> > > >
> > > > I have not yet seen this during a PREEMPT run. Line 658 of
> > > > hazptrtorture.c is the WARN_ON_ONCE() below:
> > > >
> > > > if (i > 1) {
> > > > pr_cont("%s", "!!! ");
> > > > atomic_inc(&n_hazptr_torture_error);
> > > > WARN_ON_ONCE(i > 1); // Too-short grace period
> > > > }
> > > >
> > > > Any thoughts on what might be causing this?
> > >
> > > Hi Paul!
> > >
> > > Can you share which tree and branch (commit) this is running ?
> > >
> > > Does it include my fix from this series ? That would be patch 1 of:
> > >
> > > https://lore.kernel.org/lkml/[email protected]/
> >
> > Ah, no, I somehow got the impression that this series was going to be
> > updated, so did not apply it. Apologies!
> >
> > I will pull these in.
> >
> > > Does it run the additional series from Kunwu Chan found at
> > > https://lore.kernel.org/lkml/[email protected]/
> > > ?
> >
>
> Hi Paul,
>
> I have posted v3 of the series since then. The link in Mathieu's
> question points to v2.
>
> Please use the latest v3 series here:
> https://lore.kernel.org/all/[email protected]/
I do it the old way with out b4, so I would have bot there. I will
hold off a bit for merge-window preparation, though.
> I wasn't able to reproduce the warning with my current setup(without
> my series).
> Could you share the .config and the exact command line you used to run the
> test? That may help me reproduce it.
I used this command line, which creates the .config:
tools/testing/selftests/rcutorture/bin/kvm.sh --torture hazptr --allcpus
--configs "2*CFLIST" --duration 90m --trust-make
This was on an ARM system, in case that matters.
But pulling in Mathieu's first patch took care of this issue for me.
Thanx, Paul
> Thanks,
> Kunwu
>
> > No, but if you are good with it I will pull it in.
> >
> > May I add your Acked-by or Reviewed-by?
> >
> > Thanx, Paul
> >
> > > Thanks,
> > >
> > > Mathieu
> > >
> > > >
> > > > For that matter, can anyone else reproduce this?
> > > >
> > > > Thanx, Paul
> > >
> > >
> > > --
> > > Mathieu Desnoyers
> > > EfficiOS Inc.
> > > https://www.efficios.com