Linux MultiMedia Card development
 help / color / mirror / Atom feed
From: peterz@infradead.org
To: Ulf Hansson <ulf.hansson@linaro.org>
Cc: "Paul E. McKenney" <paulmck@kernel.org>,
	Lina Iyer <ilina@codeaurora.org>,
	Naresh Kamboju <naresh.kamboju@linaro.org>,
	"Rafael J. Wysocki" <rjw@rjwysocki.net>,
	Saravana Kannan <saravanak@google.com>,
	open list <linux-kernel@vger.kernel.org>,
	linux-mmc <linux-mmc@vger.kernel.org>,
	lkft-triage@lists.linaro.org, rcu@vger.kernel.org,
	Linux PM <linux-pm@vger.kernel.org>,
	Anders Roxell <anders.roxell@linaro.org>,
	Arnd Bergmann <arnd@arndb.de>,
	Rajendra Nayak <rnayak@codeaurora.org>,
	John Stultz <john.stultz@linaro.org>,
	Stephen Boyd <sboyd@kernel.org>,
	Lars Povlsen <lars.povlsen@microchip.com>,
	madhuparnabhowmik10@gmail.com,
	Viresh Kumar <viresh.kumar@linaro.org>,
	Vincent Guittot <vincent.guittot@linaro.org>,
	Thomas Gleixner <tglx@linutronix.de>
Subject: Re: [RFC][PATCH] cpu_pm: Remove RCU abuse
Date: Thu, 3 Sep 2020 17:08:19 +0200	[thread overview]
Message-ID: <20200903150819.GE1362448@hirez.programming.kicks-ass.net> (raw)
In-Reply-To: <CAPDyKFqduU65YmhBZ8PwDRTZDLtWhWX087LBy0bx56go+ra4Ow@mail.gmail.com>

On Thu, Sep 03, 2020 at 04:36:35PM +0200, Ulf Hansson wrote:
> On Thu, 3 Sep 2020 at 15:53, <peterz@infradead.org> wrote:
> >  static int cpu_pm_notify(enum cpu_pm_event event)
> >  {
> >         int ret;
> >
> > +       lockdep_assert_irqs_disabled();
> 
> Nitpick, maybe the lockdep should be moved to a separate patch.

Well, the unregister relies on IRQs being disabled here, so I figured
asserting this was a good thing ;-)

Starting the audit below, this might not in fact be true, which then
invalidates the unregister implementation. In particular the notifier in
arch/arm/kernel/hw_breakpoint.c seems to unconditionally enable IRQs.

> > +       ret = raw_notifier_call_chain(&cpu_pm_notifier_chain, event, NULL);
> 
> Converting to raw_notifiers seems reasonable - if we need to avoid the
> RCU usage.
> 
> My point is, I wonder about if the notifier callbacks themselves are
> safe from RCU usage. For example, I would not be surprised if tracing
> is happening behind them.

A bunch of them seem to call into the clk domain stuff, and I think
there's tracepoints in that.

> Moreover, I am not sure that we really need to prevent and limit
> tracing from happening. Instead we could push rcu_idle_enter|exit()
> further down to the arch specific code in the cpuidle drivers, as you
> kind of all proposed earlier.

Well, at some point the CPU is in a really dodgy state, ISTR there being
ARM platforms where you have to manually leave the cache coherency
fabric and all sorts of insanity. There should be a definite cut-off on
tracing before that.

Also, what is the point of all this clock and power domain callbacks, if
not to put the CPU into an extremely low power state, surely you want to
limit the amount of code that's ran when the CPU is in such a state.

> In this way, we can step by step, move to a new "version" of
> cpu_pm_enter() that doesn't have to deal with rcu_irq_enter_irqson(),
> because RCU hasn't been pushed to idle yet.

That should be easy enough to audit. The thing is that mainline is now
generating (debug) splats, and some people are upset with this.

If you're ok with ARM not being lockdep clean while this is being
reworked I'm perfectly fine with that.

(There used to be a separate CONFIG for RCU-lockdep, but that seems to
have been removed)

  reply	other threads:[~2020-09-03 15:10 UTC|newest]

Thread overview: 25+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-08-31  6:32 WARNING: suspicious RCU usage - sdhci-pltfm: SDHCI platform and OF driver helper Naresh Kamboju
2020-08-31 19:44 ` Paul E. McKenney
2020-09-01  6:46   ` Ulf Hansson
2020-09-01  6:50     ` Ulf Hansson
2020-09-01 10:42       ` peterz
2020-09-01 12:35         ` Ulf Hansson
2020-09-01 12:40           ` Ulf Hansson
2020-09-01 15:44             ` Lina Iyer
2020-09-01 15:50               ` peterz
2020-09-01 16:13                 ` Paul E. McKenney
2020-09-01 17:42                   ` Peter Zijlstra
2020-09-02  7:03                     ` Ulf Hansson
2020-09-02 12:13                       ` peterz
2020-09-02 15:58                         ` Ulf Hansson
2020-09-03 13:53                           ` [RFC][PATCH] cpu_pm: Remove RCU abuse peterz
2020-09-03 14:36                             ` Ulf Hansson
2020-09-03 15:08                               ` peterz [this message]
2020-09-03 15:35                                 ` Paul E. McKenney
2020-09-04  6:08                                 ` Ulf Hansson
2020-09-01 15:00           ` WARNING: suspicious RCU usage - sdhci-pltfm: SDHCI platform and OF driver helper peterz
2020-09-01 15:00     ` Paul E. McKenney
2020-09-02  6:49       ` Ulf Hansson
2020-09-02 13:52         ` Paul E. McKenney
2020-09-02 16:07           ` Ulf Hansson
2020-09-02 17:01             ` Paul E. McKenney

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20200903150819.GE1362448@hirez.programming.kicks-ass.net \
    --to=peterz@infradead.org \
    --cc=anders.roxell@linaro.org \
    --cc=arnd@arndb.de \
    --cc=ilina@codeaurora.org \
    --cc=john.stultz@linaro.org \
    --cc=lars.povlsen@microchip.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mmc@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=lkft-triage@lists.linaro.org \
    --cc=madhuparnabhowmik10@gmail.com \
    --cc=naresh.kamboju@linaro.org \
    --cc=paulmck@kernel.org \
    --cc=rcu@vger.kernel.org \
    --cc=rjw@rjwysocki.net \
    --cc=rnayak@codeaurora.org \
    --cc=saravanak@google.com \
    --cc=sboyd@kernel.org \
    --cc=tglx@linutronix.de \
    --cc=ulf.hansson@linaro.org \
    --cc=vincent.guittot@linaro.org \
    --cc=viresh.kumar@linaro.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox