All of lore.kernel.org
 help / color / mirror / Atom feed
From: Stephen Boyd <swboyd@chromium.org>
To: "Rafael J. Wysocki" <rafael@kernel.org>, Tri Vo <trong@android.com>
Cc: Tony Lindgren <tony@atomide.com>, Qian Cai <cai@lca.pw>,
	Dmitry Torokhov <dmitry.torokhov@gmail.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
	"Rafael J. Wysocki" <rafael@kernel.org>,
	Linux PM <linux-pm@vger.kernel.org>,
	LKML <linux-kernel@vger.kernel.org>
Subject: Re: "PM / wakeup: Show wakeup sources stats in sysfs" causes boot warnings
Date: Fri, 16 Aug 2019 07:19:35 -0700	[thread overview]
Message-ID: <5d56bb77.1c69fb81.58e9d.1f86@mx.google.com> (raw)
In-Reply-To: <CAJZ5v0hY8=0j=heXuAS-5cBafDSE8ZakLDW4NGCjAbxUAt3j4Q@mail.gmail.com>

Quoting Rafael J. Wysocki (2019-08-16 05:17:23)
> On Wed, Aug 14, 2019 at 8:37 PM Tri Vo <trong@android.com> wrote:
> >
> > On Wed, Aug 14, 2019 at 1:40 AM Tony Lindgren <tony@atomide.com> wrote:
> > >
> > > * Stephen Boyd <swboyd@chromium.org> [691231 23:00]:
> > > > I also notice that device_set_wakeup_capable() has a check to see if the
> > > > device is registered yet and it skips creating sysfs entries for the
> > > > device if it isn't created in sysfs yet. Why? Just so it can be called
> > > > before the device is created? I guess the same logic is handled by
> > > > dpm_sysfs_add() if the device is registered after calling
> > > > device_set_wakeup_*().
> > >
> > > Hmm just guessing.. It's maybe because drivers can enable and disable
> > > the wakeup capability at any point for example like driver/net drivers
> > > do based on WOL etc?
> > >
> > > > There's two approaches I see:
> > > >
> > > >       1) Do a similar check for device_set_wakeup_enable() and skip
> > > >       adding the wakeup class until dpm_sysfs_add().
> > > >
> > > >       2) Find each case where this happens and only call wakeup APIs
> > > >       on the device after the device is added.
> > > >
> > > > I guess it's better to let devices have wakeup modified on them before
> > > > they're registered with the device core?
> > >
> > > I think we should at least initially handle case #1 above as multiple
> > > places otherwise seem to break. Then maybe we could add a warning to
> > > help fix all the #2 cases if needed?
> >
> > Makes sense. For case#1, we could also just register the wakeup source
> > without specifying the parent device if the latter hasn't been
> > registered yet. Userspace won't be able to associate a wakeup source
> > to the parent device. But I think it's a reasonable fix, assuming we
> > want to fix devices not being added before calling wakeup APIs #2.
> 
> Well, OK
> 
> I'm going to drop the entire series from linux-next at this point and
> let's start over.

I was going to send the first patch I floated as a more formal patch to
be applied to the PM tree. I was waiting to see if the semantics of
device_set_wakeup_*() could be clarified because I don't understand if
they're allowed to be called before device_add().

> 
> Also note that all of this is not an issue until we start to add
> children under the device passed to device_set_wakeup_enable() and
> friends so maybe that is not a good idea after all?

My primary goal is to know what wakeup is associated with a device. If
we delay creation of the sysfs node to the time that device_add() is
called then it will allow device_set_wakeup_enable() to be called before
the device is published to userspace. Is anything wrong with that? This
seems to be the intention of the API based on the way
device_set_wakeup_capable() is written. Furthermore, if we make this
change then we don't need to fix various drivers to reorder calls to
device_set_wakeup_enable() and device_add(), so it looks like the right
approach.

I'll send the patch over the list now and let you decide. I'll also send
a patch for serio to have it operate on the device in a less racy way,
but not necessarily after the device_add() is called.


  reply	other threads:[~2019-08-16 14:19 UTC|newest]

Thread overview: 13+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-08-13 21:32 "PM / wakeup: Show wakeup sources stats in sysfs" causes boot warnings Qian Cai
2019-08-13 22:35 ` Stephen Boyd
2019-08-13 23:04   ` Tri Vo
2019-08-13 23:10     ` Rafael J. Wysocki
2019-08-14 13:18   ` Qian Cai
2019-08-14  0:35 ` Stephen Boyd
2019-08-14  7:03 ` Stephen Boyd
2019-08-14  8:40   ` Tony Lindgren
2019-08-14 18:37     ` Tri Vo
2019-08-16 12:17       ` Rafael J. Wysocki
2019-08-16 14:19         ` Stephen Boyd [this message]
2019-08-19  9:33           ` Rafael J. Wysocki
2019-08-14 15:19   ` Dmitry Torokhov

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=5d56bb77.1c69fb81.58e9d.1f86@mx.google.com \
    --to=swboyd@chromium.org \
    --cc=cai@lca.pw \
    --cc=dmitry.torokhov@gmail.com \
    --cc=gregkh@linuxfoundation.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-pm@vger.kernel.org \
    --cc=peterz@infradead.org \
    --cc=rafael@kernel.org \
    --cc=tony@atomide.com \
    --cc=trong@android.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.