All of lore.kernel.org
 help / color / mirror / Atom feed
From: Bastien Nocera <hadess@hadess.net>
To: John Stultz <john.stultz@linaro.org>
Cc: Linux Kernel Mailing List <linux-kernel@vger.kernel.org>
Subject: Re: A desktop environment[1] kernel wishlist
Date: Thu, 30 Oct 2014 15:35:38 +0100	[thread overview]
Message-ID: <1414679738.2406.49.camel@hadess.net> (raw)
In-Reply-To: <CALAqxLXyaL55JuDuHAcWX0PEdem-jpVxK0rbJaNrBbBJ3rQY5Q@mail.gmail.com>

On Mon, 2014-10-27 at 09:56 -0700, John Stultz wrote:
> On Mon, Oct 27, 2014 at 7:19 AM, Bastien Nocera <hadess@hadess.net> wrote:
> > I also cannot know, from user-space, whether Wake-On-LAN,
> > Wake-On-Wireless-LAN, or the Wi-Fi card's "network proximity" triggered
> > coming out of suspend for example.
> >
> > I can certainly check for the status of the lid, but I wouldn't know
> > whether a button was pressed to turn the machine back on, as the
> > firmware would eat that.
> 
> If the firmware eats that button (which I hope it wouldn't, but I
> probably should know better then to expect sane behavior), how does
> the kernel know anything more?

The kernel receives an interrupt, likely on a different device. Again,
I'm talking about "legacy" devices, for which suspend is actually a
state. If the device is only in low-power mode, you'd probably get the
event on the input device, which is accessible from user-space.

> > To make it short, I don't have a way to know, from user-space, whether
> > the event that took it out of suspend was programmatic, or user action.
> > I would add that, even if we said that races can occur, I have no easy
> > way to know, from user-space, whether the last thing that occurred was
> > the Wi-Fi card waking the machine up or the power button being pressed.
> 
> 
> Again, I think you just want to know if the power button (or lid
> trigger) was pressed. Not if it was the cause for resume (since a
> wake-on-lan or alarm could fire right as the user presses the power
> button). If those button presses don't reliably get communicated, I
> think that's a better problem to solve in the kernel.
> 
> Again, part of the reason I'm pushing back here, is that there may be
> a lot of things going on on a system, and systems may suspend and
> resume quite often while being in use, so applications really should
> handle events consistently weather the system was suspended or not
> (another lesson from android: suspend blocking is a more flexible
> approach then having applications initiate suspend, since you avoid
> all the races of multiple applications trying to manage initiating
> suspend state).
> 
> But the other part of why I'm pushing back is that on future hardware,
> we may not have a "suspend" mode, and systems may just be in a deep
> idle, with selected interrupts disabled (event filtering, in other
> words). So I think its better if you design around events (button
> presses, lid triggers, mouse movements, timers firing), rather then
> specific system suspend state.

Knowing why the Wi-Fi card woke up is also important when there isn't a
full "suspend" state. As was mentioned, it's useful for power debugging,
but it's also useful because that tells things outside the network card
driver what happened.

As I mentioned in more recent emails on this thread, maybe we don't want
to know what woke the system up, but knowing that a wake-up event
occurred on this device, at this time, would allow us to make the
software act accordingly. The fact that we don't know that means that we
cannot take appropriate action.

Cheers


  parent reply	other threads:[~2014-10-30 14:36 UTC|newest]

Thread overview: 105+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-10-21  8:49 A desktop environment[1] kernel wishlist Bastien Nocera
2014-10-21 13:11 ` Sergey
2014-10-22  2:58   ` Minchan Kim
2014-10-22 16:52   ` Dan Streetman
2014-10-22 20:16   ` Heinrich Schuchardt
2014-10-27 16:11     ` Sergey "Shnatsel" Davidoff
2014-10-27  9:23   ` Pavel Machek
2014-10-27 16:02     ` Sergey "Shnatsel" Davidoff
2014-10-31  9:36       ` Jan Kara
2014-11-03 18:21         ` Heinrich Schuchardt
2014-11-04  9:28           ` Jan Kara
2014-11-04 19:55             ` Heinrich Schuchardt
2014-11-05 17:18               ` Jan Kara
2014-10-21 17:04 ` John Stultz
2014-10-21 17:14   ` Bastien Nocera
2014-10-21 18:00     ` John Stultz
2014-10-21 18:09       ` Bastien Nocera
2014-10-21 19:10         ` John Stultz
2014-10-27 14:19           ` Bastien Nocera
2014-10-27 16:56             ` John Stultz
2014-10-28 22:57               ` One Thousand Gnomes
2014-10-30 14:41                 ` Bastien Nocera
2014-10-30 23:39                   ` One Thousand Gnomes
2014-10-31 14:03                     ` Bastien Nocera
2014-11-03 14:17                       ` One Thousand Gnomes
2014-10-30 14:35               ` Bastien Nocera [this message]
2014-10-30 23:25                 ` One Thousand Gnomes
2014-10-31 14:01                   ` Bastien Nocera
2014-11-21 19:08             ` Pavel Machek
2014-10-21 19:23         ` Andy Lutomirski
2014-10-22 17:04         ` Zygo Blaxell
2014-10-27 14:28           ` Bastien Nocera
2014-10-27 20:59             ` Zygo Blaxell
2014-10-28 12:36               ` Bastien Nocera
2014-10-28 14:36                 ` John Stultz
2014-10-31 13:54                   ` Bastien Nocera
2014-10-31 17:38                     ` John Stultz
     [not found]                 ` <CANszf4gaozN9YHzxUToRP9CaA1VVEV9vcz_X6LDL1zW3fH4Fow@mail.gmail.com>
2014-10-28 16:41                   ` Fwd: " Rogelio Serrano
2014-10-27  9:28         ` Pavel Machek
2014-10-27 14:31           ` Bastien Nocera
2014-10-28 18:50             ` suspend to partition " Pavel Machek
2014-10-30 13:57               ` Bastien Nocera
2014-10-29 19:19             ` Andy Lutomirski
2014-10-29 20:26               ` Theodore Ts'o
2014-10-29 21:16                 ` Pavel Machek
2014-10-30 14:45                   ` Bastien Nocera
2014-10-30 14:53                     ` Andy Lutomirski
2014-10-30 15:07                       ` Bastien Nocera
2014-10-30 18:23                         ` Pavel Machek
2014-10-31 13:57                           ` Bastien Nocera
2014-10-30 15:05                     ` Theodore Ts'o
2014-10-30 15:15                       ` Bastien Nocera
2014-10-30 15:34                         ` Theodore Ts'o
2014-10-30 15:36                           ` Bastien Nocera
2014-10-30 17:41                         ` Pavel Machek
2014-10-31 13:59                           ` Bastien Nocera
2014-10-30 23:21                         ` One Thousand Gnomes
2014-10-30 23:19                       ` One Thousand Gnomes
2014-10-30 14:42                 ` Bastien Nocera
2014-10-28 22:42           ` One Thousand Gnomes
2014-10-21 18:24     ` Geert Uytterhoeven
2014-10-27 14:20       ` Bastien Nocera
2014-10-27 15:31         ` Geert Uytterhoeven
2014-10-27 15:44           ` Bastien Nocera
2015-04-30 16:25   ` Bastien Nocera
2015-04-30 17:10     ` John Stultz
2015-04-30 17:23       ` Olof Johansson
2015-04-30 18:54         ` Chirantan Ekbote
2015-05-01  9:02           ` Tomeu Vizoso
2015-05-04 22:19             ` Rafael J. Wysocki
2015-05-05  6:05               ` Tomeu Vizoso
2015-05-05 12:31                 ` Rafael J. Wysocki
2015-05-07 16:54                   ` One Thousand Gnomes
2015-05-07 21:03                     ` Rafael J. Wysocki
2015-05-08  7:09                       ` Tomeu Vizoso
2015-05-04 22:12           ` Rafael J. Wysocki
2015-05-04 23:30             ` Chirantan Ekbote
2015-05-05 10:46               ` Bastien Nocera
2015-05-05 19:22                 ` Chirantan Ekbote
2015-05-06 12:41                   ` Bastien Nocera
2015-05-05 14:39               ` Alan Stern
2015-05-05 14:39                 ` Alan Stern
2015-05-05 17:58                 ` Chirantan Ekbote
2015-05-05 19:35                   ` Alan Stern
2015-05-05 19:35                     ` Alan Stern
2015-05-05 20:58                     ` Chirantan Ekbote
2015-05-05 23:56                       ` Rafael J. Wysocki
2015-05-05 23:38                         ` David Lang
2015-05-05 23:51                           ` Rafael J. Wysocki
2015-05-07 17:03                       ` One Thousand Gnomes
2015-05-07 18:21                         ` Chirantan Ekbote
2015-05-05 23:47               ` Rafael J. Wysocki
2015-05-06 17:40                 ` Chirantan Ekbote
2015-05-07 23:19                   ` Rafael J. Wysocki
2015-05-11 22:12                 ` Pavel Machek
2015-05-12  0:45                   ` Rafael J. Wysocki
2014-10-21 19:28 ` Andy Lutomirski
2014-10-21 19:43   ` Al Viro
2014-10-21 19:47     ` Andy Lutomirski
2014-10-27 13:55   ` Bastien Nocera
2014-10-27 15:12     ` Andy Lutomirski
2014-10-27 15:45       ` Bastien Nocera
2014-10-27 16:08         ` Andy Lutomirski
2014-10-27 16:09           ` Bastien Nocera
2014-10-27 16:22             ` Al Viro

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=1414679738.2406.49.camel@hadess.net \
    --to=hadess@hadess.net \
    --cc=john.stultz@linaro.org \
    --cc=linux-kernel@vger.kernel.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 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.