Re: A desktop environment[1] kernel wishlist

John Stultz
2015-04-30T17:10:28Z

On Thu, Apr 30, 2015 at 9:25 AM, Bastien Nocera <hadess@hadess.net> wrote:
> On Tue, 2014-10-21 at 10:04 -0700, John Stultz wrote:
>> On Tue, Oct 21, 2014 at 1:49 AM, Bastien Nocera <hadess@hadess.net>
>> wrote:
>> > Hey,
>> >
>> > GNOME has had discussions with kernel developers in the past, and,
>> > fortunately, in some cases we were able to make headway.
>> >
>> > There are however a number of items that we still don't have
>> > solutions
>> > for, items that kernel developers might not realise we'd like to
>> > rely
>> > on, or don't know that we'd make use of if merged.
>> >
>> > I've posted this list at:
>> > https://wiki.gnome.org/BastienNocera/KernelWishlist
>> >
>> > Let me know on-list or off-list if you have any comments about
>> > those, so
>> > I can update the list.
>>
>> As for: 'Export of "wake reason" when the system wakes up (rtc alarm,
>> lid open, etc.) and wakealarm (/sys/class/rtc/foo/wakealarm)
>> documentation'
>>
>> Can you expand more on the rational for the need here? Is this for UI
>> for power debugging, or something else?
>
> This is pretty much what I had in mind:
> https://www.chromium.org/chromium-os/chromiumos-design-docs/lucid-sleep
>
> I guess I didn't make myself understood.

My, admittedly quick skim, of that design document seems to suggest
that lucid sleep would be a new kernel state. That would keep the
kernel in charge of determining the state transitions (ie:
SUSPEND-(alarm)->LUCID-(wakelock
release)->SUSPEND-(alarm)->LUCID-(power-button)->AWAKE). Then it seems
userspace would be able to query the current state. This avoids some
of the races I was concerned with trying to detect which irq woke us
from suspend from userspace.

That said, the Power Manager section in that document sounds a little
racy as it seems to rely on asking userspace if suspend is ok, rather
then using userspace wakelocks, so I'm not sure how well baked this
doc is.

Olof: Can you comment on who's working on that design doc? Also the
discussion around using freezing cgroups separately to distinguish
between lucid and awake is interesting, but I wonder if we need to
make wakeup_sources/wakelocks cgroup aware, or has that already been
done?

thanks
-john