[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <AANLkTimIzm7fEczlaDT5QqkiBFAjbe46rciLxxsoLSya@mail.gmail.com>
Date: Mon, 31 May 2010 22:04:39 -0700
From: Arve Hjønnevåg <arve@...roid.com>
To: "Rafael J. Wysocki" <rjw@...k.pl>
Cc: Neil Brown <neilb@...e.de>, Thomas Gleixner <tglx@...utronix.de>,
Alan Stern <stern@...land.harvard.edu>,
Felipe Balbi <felipe.balbi@...ia.com>,
Peter Zijlstra <peterz@...radead.org>,
"Paul@...p1.linux-foundation.org" <Paul@...p1.linux-foundation.org>,
LKML <linux-kernel@...r.kernel.org>,
Florian Mickler <florian@...kler.org>,
Linux OMAP Mailing List <linux-omap@...r.kernel.org>,
Linux PM <linux-pm@...ts.linux-foundation.org>,
Alan Cox <alan@...rguk.ukuu.org.uk>
Subject: Re: [linux-pm] [PATCH 0/8] Suspend block api (version 8)
On Mon, May 31, 2010 at 3:05 PM, Rafael J. Wysocki <rjw@...k.pl> wrote:
> On Monday 31 May 2010, Neil Brown wrote:
>> On Thu, 27 May 2010 23:40:29 +0200 (CEST)
>> Thomas Gleixner <tglx@...utronix.de> wrote:
>>
>> > On Thu, 27 May 2010, Rafael J. Wysocki wrote:
>> >
>> > > On Thursday 27 May 2010, Thomas Gleixner wrote:
>> > > > On Thu, 27 May 2010, Alan Stern wrote:
>> > > >
>> > > > > On Thu, 27 May 2010, Felipe Balbi wrote:
>> > > > >
>> > > > > > On Thu, May 27, 2010 at 05:06:23PM +0200, ext Alan Stern wrote:
>> > > > > > >If people don't mind, here is a greatly simplified summary of the
>> > > > > > >comments and objections I have seen so far on this thread:
>> > > > > > >
>> > > > > > > The in-kernel suspend blocker implementation is okay, even
>> > > > > > > beneficial.
>> > > > > >
>> > > > > > I disagree here. I believe expressing that as QoS is much better. Let
>> > > > > > the kernel decide which power state is better as long as I can say I
>> > > > > > need 100us IRQ latency or 100ms wakeup latency.
>> > > > >
>> > > > > Does this mean you believe "echo mem >/sys/power/state" is bad and
>> > > > > should be removed? Or "echo disk >/sys/power/state"? They pay no
>> > > >
>> > > > mem should be replaced by an idle suspend to ram mechanism
>> > >
>> > > Well, what about when I want the machine to suspend _regardless_ of whether
>> > > or not it's idle at the moment? That actually happens quite often to me. :-)
>> >
>> > Fair enough. Let's agree on a non ambigous terminology then:
>> >
>> > forced:
>> >
>> > suspend which you enforce via user interaction, which
>> > also implies that you risk losing wakeups depending on
>> > the hardware properties
>>
>> Reasonable definition I think. However the current implementation doesn't
>> exactly match it.
>> With the current implementation you risk losing wakeups *independent* of the
>> hardware properties.
>
> Define "losing", please.
>
> Currently, we simply don't regard hardware signals occuring _during_ the
> suspend operation itself as wakeups (unless they are wakeup interrupts to be
> precise, because these _are_ taken into account by our current code).
>
> The reason is that the meaning of given event may be _different_ at run time
> and after the system has been suspended. For example, consider a power button
> on a PC box. If it's pressed at run time, it usually means "power off the
> system" to the kernel. After the system has been suspended, however, it means
> "wake up". So, you have to switch from one interpretation of the event to the
> other and that's not an atomic operaition (to put it lightly).
>
>> Even with ideal hardware events can be lost - by which I mean that they will
>> not be seen until some other event effects a wake-up.
>> e.g. the interrupt which signals the event happens immediately before the
>> suspend is requested (or maybe at the same time as), but the process which
>> needs to handle the event doesn't get a chance to see it before the suspend
>> procedure freezes that process, and even if it did it would have no way to
>> abort the suspend.
>>
>> So I submit that the current implementation doesn't match your description of
>> "forced", is therefore buggy, and that if it were fixed, that would be
>> sufficient to meet the immediate needs of android.
>
> I don't really think it may be fixed with respect to every possible kind of
> hardware. On platforms where I/O interrupts are wakeup events it should
> work right now. On other platforms it may be impossible to overcome hardware
> limitations.
>
There is no reason you cannot make the rtc alarms work reliably on x86
hardware. Even if you may loose key events while suspending I think it
is still valuable to have reliable alarms. I gave an example earlier
why reliable alarms are useful (dvr application).
--
Arve Hjønnevåg
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists