[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <CAJZ5v0ix+taHWpKAeYsNBQMoxG6f7E9vyO=yqjrh5_AnjrXZbg@mail.gmail.com>
Date: Sun, 28 Sep 2025 12:33:11 +0200
From: "Rafael J. Wysocki" <rafael@...nel.org>
To: Hanjun Guo <guohanjun@...wei.com>, pengdonglin <dolinux.peng@...il.com>
Cc: tj@...nel.org, tony.luck@...el.com, jani.nikula@...ux.intel.com,
ap420073@...il.com, jv@...sburgh.net, freude@...ux.ibm.com, bcrl@...ck.org,
trondmy@...nel.org, longman@...hat.com, kees@...nel.org,
bigeasy@...utronix.de, hdanton@...a.com, paulmck@...nel.org,
linux-kernel@...r.kernel.org, linux-rt-devel@...ts.linux.dev,
linux-nfs@...r.kernel.org, linux-aio@...ck.org, linux-fsdevel@...r.kernel.org,
linux-security-module@...r.kernel.org, netdev@...r.kernel.org,
intel-gfx@...ts.freedesktop.org, linux-wireless@...r.kernel.org,
linux-acpi@...r.kernel.org, linux-s390@...r.kernel.org,
cgroups@...r.kernel.org, "Rafael J. Wysocki" <rafael@...nel.org>,
pengdonglin <pengdonglin@...omi.com>
Subject: Re: [PATCH v3 01/14] ACPI: APEI: Remove redundant rcu_read_lock/unlock()
in spin_lock
On Sat, Sep 27, 2025 at 5:22 AM Hanjun Guo <guohanjun@...wei.com> wrote:
>
> On 2025/9/16 12:47, pengdonglin wrote:
> > From: pengdonglin <pengdonglin@...omi.com>
> >
> > Since commit a8bb74acd8efe ("rcu: Consolidate RCU-sched update-side function definitions")
> > there is no difference between rcu_read_lock(), rcu_read_lock_bh() and
> > rcu_read_lock_sched() in terms of RCU read section and the relevant grace
> > period. That means that spin_lock(), which implies rcu_read_lock_sched(),
> > also implies rcu_read_lock().
> >
> > There is no need no explicitly start a RCU read section if one has already
> > been started implicitly by spin_lock().
> >
> > Simplify the code and remove the inner rcu_read_lock() invocation.
> >
> > Cc: "Rafael J. Wysocki" <rafael@...nel.org>
> > Cc: Tony Luck <tony.luck@...el.com>
> > Cc: Hanjun Guo <guohanjun@...wei.com>
> > Signed-off-by: pengdonglin <pengdonglin@...omi.com>
> > Signed-off-by: pengdonglin <dolinux.peng@...il.com>
> > ---
> > drivers/acpi/apei/ghes.c | 2 --
> > 1 file changed, 2 deletions(-)
> >
> > diff --git a/drivers/acpi/apei/ghes.c b/drivers/acpi/apei/ghes.c
> > index a0d54993edb3..97ee19f2cae0 100644
> > --- a/drivers/acpi/apei/ghes.c
> > +++ b/drivers/acpi/apei/ghes.c
> > @@ -1207,12 +1207,10 @@ static int ghes_notify_hed(struct notifier_block *this, unsigned long event,
> > int ret = NOTIFY_DONE;
> >
> > spin_lock_irqsave(&ghes_notify_lock_irq, flags);
> > - rcu_read_lock();
> > list_for_each_entry_rcu(ghes, &ghes_hed, list) {
> > if (!ghes_proc(ghes))
> > ret = NOTIFY_OK;
> > }
> > - rcu_read_unlock();
> > spin_unlock_irqrestore(&ghes_notify_lock_irq, flags);
> >
> > return ret;
>
> Reviewed-by: Hanjun Guo <guohanjun@...wei.com>
Applied as 6.18 material, thanks!
Powered by blists - more mailing lists