[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <YqiznJL7qB9uSQ9c@FVFF77S0Q05N>
Date: Tue, 14 Jun 2022 17:13:16 +0100
From: Mark Rutland <mark.rutland@....com>
To: Peter Zijlstra <peterz@...radead.org>
Cc: rth@...ddle.net, ink@...assic.park.msu.ru, mattst88@...il.com,
vgupta@...nel.org, linux@...linux.org.uk,
ulli.kroll@...glemail.com, linus.walleij@...aro.org,
shawnguo@...nel.org, Sascha Hauer <s.hauer@...gutronix.de>,
kernel@...gutronix.de, festevam@...il.com, linux-imx@....com,
tony@...mide.com, khilman@...nel.org, catalin.marinas@....com,
will@...nel.org, guoren@...nel.org, bcain@...cinc.com,
chenhuacai@...nel.org, kernel@...0n.name, geert@...ux-m68k.org,
sammy@...my.net, monstr@...str.eu, tsbogend@...ha.franken.de,
dinguyen@...nel.org, jonas@...thpole.se,
stefan.kristiansson@...nalahti.fi, shorne@...il.com,
James.Bottomley@...senPartnership.com, deller@....de,
mpe@...erman.id.au, benh@...nel.crashing.org, paulus@...ba.org,
paul.walmsley@...ive.com, palmer@...belt.com,
aou@...s.berkeley.edu, hca@...ux.ibm.com, gor@...ux.ibm.com,
agordeev@...ux.ibm.com, borntraeger@...ux.ibm.com,
svens@...ux.ibm.com, ysato@...rs.sourceforge.jp, dalias@...c.org,
davem@...emloft.net, richard@....at,
anton.ivanov@...bridgegreys.com, johannes@...solutions.net,
tglx@...utronix.de, mingo@...hat.com, bp@...en8.de,
dave.hansen@...ux.intel.com, x86@...nel.org, hpa@...or.com,
acme@...nel.org, alexander.shishkin@...ux.intel.com,
jolsa@...nel.org, namhyung@...nel.org, jgross@...e.com,
srivatsa@...il.mit.edu, amakhalov@...are.com,
pv-drivers@...are.com, boris.ostrovsky@...cle.com,
chris@...kel.net, jcmvbkbc@...il.com, rafael@...nel.org,
lenb@...nel.org, pavel@....cz, gregkh@...uxfoundation.org,
mturquette@...libre.com, sboyd@...nel.org,
daniel.lezcano@...aro.org, lpieralisi@...nel.org,
sudeep.holla@....com, agross@...nel.org,
bjorn.andersson@...aro.org, anup@...infault.org,
thierry.reding@...il.com, jonathanh@...dia.com,
jacob.jun.pan@...ux.intel.com, Arnd Bergmann <arnd@...db.de>,
yury.norov@...il.com, andriy.shevchenko@...ux.intel.com,
linux@...musvillemoes.dk, rostedt@...dmis.org, pmladek@...e.com,
senozhatsky@...omium.org, john.ogness@...utronix.de,
paulmck@...nel.org, frederic@...nel.org, quic_neeraju@...cinc.com,
josh@...htriplett.org, mathieu.desnoyers@...icios.com,
jiangshanlai@...il.com, joel@...lfernandes.org,
juri.lelli@...hat.com, vincent.guittot@...aro.org,
dietmar.eggemann@....com, bsegall@...gle.com, mgorman@...e.de,
bristot@...hat.com, vschneid@...hat.com, jpoimboe@...nel.org,
linux-alpha@...r.kernel.org, linux-kernel@...r.kernel.org,
linux-snps-arc@...ts.infradead.org,
linux-arm-kernel@...ts.infradead.org, linux-omap@...r.kernel.org,
linux-csky@...r.kernel.org, linux-hexagon@...r.kernel.org,
linux-ia64@...r.kernel.org, linux-m68k@...ts.linux-m68k.org,
linux-mips@...r.kernel.org, openrisc@...ts.librecores.org,
linux-parisc@...r.kernel.org, linuxppc-dev@...ts.ozlabs.org,
linux-riscv@...ts.infradead.org, linux-s390@...r.kernel.org,
linux-sh@...r.kernel.org, sparclinux@...r.kernel.org,
linux-um@...ts.infradead.org, linux-perf-users@...r.kernel.org,
virtualization@...ts.linux-foundation.org,
xen-devel@...ts.xenproject.org, linux-xtensa@...ux-xtensa.org,
linux-acpi@...r.kernel.org, linux-pm@...r.kernel.org,
linux-clk@...r.kernel.org, linux-arm-msm@...r.kernel.org,
linux-tegra@...r.kernel.org, linux-arch@...r.kernel.org,
rcu@...r.kernel.org
Subject: Re: [PATCH 15/36] cpuidle,cpu_pm: Remove RCU fiddling from
cpu_pm_{enter,exit}()
On Wed, Jun 08, 2022 at 04:27:38PM +0200, Peter Zijlstra wrote:
> All callers should still have RCU enabled.
IIUC with that true we should be able to drop the RCU_NONIDLE() from
drivers/perf/arm_pmu.c, as we only needed that for an invocation via a pm
notifier.
I should be able to give that a spin on some hardware.
>
> Signed-off-by: Peter Zijlstra (Intel) <peterz@...radead.org>
> ---
> kernel/cpu_pm.c | 9 ---------
> 1 file changed, 9 deletions(-)
>
> --- a/kernel/cpu_pm.c
> +++ b/kernel/cpu_pm.c
> @@ -30,16 +30,9 @@ static int cpu_pm_notify(enum cpu_pm_eve
> {
> int ret;
>
> - /*
> - * This introduces a RCU read critical section, which could be
> - * disfunctional in cpu idle. Copy RCU_NONIDLE code to let RCU know
> - * this.
> - */
> - rcu_irq_enter_irqson();
> rcu_read_lock();
> ret = raw_notifier_call_chain(&cpu_pm_notifier.chain, event, NULL);
> rcu_read_unlock();
> - rcu_irq_exit_irqson();
To make this easier to debug, is it worth adding an assertion that RCU is
watching here? e.g.
RCU_LOCKDEP_WARN(!rcu_is_watching(),
"cpu_pm_notify() used illegally from EQS");
>
> return notifier_to_errno(ret);
> }
> @@ -49,11 +42,9 @@ static int cpu_pm_notify_robust(enum cpu
> unsigned long flags;
> int ret;
>
> - rcu_irq_enter_irqson();
> raw_spin_lock_irqsave(&cpu_pm_notifier.lock, flags);
> ret = raw_notifier_call_chain_robust(&cpu_pm_notifier.chain, event_up, event_down, NULL);
> raw_spin_unlock_irqrestore(&cpu_pm_notifier.lock, flags);
> - rcu_irq_exit_irqson();
... and likewise here?
Thanks,
Mark.
>
> return notifier_to_errno(ret);
> }
>
>
Powered by blists - more mailing lists