[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <CAM7-yPRc4Z0siaiWf+fK2GEfjPMq5UaY13F4o19rU6NNUS5fNg@mail.gmail.com>
Date: Sat, 22 Jul 2023 10:23:26 +0100
From: Yun Levi <ppbuk5246@...il.com>
To: paulmck@...nel.org
Cc: frederic@...nel.org, quic_neeraju@...cinc.com,
joel@...lfernandes.org, osh@...htriplett.org, boqun.feng@...il.com,
rostedt@...dmis.org, mathieu.desnoyers@...icios.com,
jiangshanlai@...il.com, qiang.zhang1211@...il.com,
rcu@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH] rcu: remove unnecessary check cpu_no_qs.norm on rcu_report_qs_rdp
Hi, Paul.
Thanks for looking into this :)
> Except that rcu_report_qs_rdp() is invoked with interrupts enabled,
> which means that there is some possibility of state changes up to the
> raw_spin_lock_irqsave_rcu_node(rnp, flags) statement.
>
> So, did you check whether RCU's interrupt paths change this state?
In my narrow view,
only a new gp started, cpu_no_qs.b.norm changes as true in the path of
rcu_sched_clock_irq.
But in that case, rcu_report_qs_rdp isn't called.
Did I understand your question well and are there any missed paths I didn't see?
> Why not start with something like this?
>
> if (!WARN_ON_ONCE(!rdp->cpu_no_qs.b.norm) ||
> rdp->gp_seq != rnp->gp_seq || rdp->gpwrap) {
>
Yes. but with different message
Powered by blists - more mailing lists