Re: Run-time PM idea (was: Re: [RFC][PATCH 0/2] PM: Rearrange coresuspend code)

From: Robert Hancock
Date: Thu Jun 18 2009 - 21:50:10 EST


On 06/08/2009 08:35 AM, Matthew Garrett wrote:
On Mon, Jun 08, 2009 at 04:24:50PM +0200, Ingo Molnar wrote:
* Matthew Garrett<mjg59@xxxxxxxxxxxxx> wrote:
eSATA is pretty common now.
[ And 99% of the CPUs have an IDT still 99.9% of the users dont know
what it is :) ]

Users know that there's a socket on the front of their computer that
they can plug a hard drive into, and if that doesn't work then they're
going to be upset.

The problem with this kind of default is that you get people who
are confused that their hardware doesn't work.
If the hardware 'doesnt work' that is a kernel bug. Hardware that
_cannot be suspended_ safely (physically) should not be
auto-suspended, of course.

So, like I said, the kernel can't automatically suspend AHCI unless it's
received some information from elsewhere that tells it it's ok to. The
kernel can't know if there's an eSATA port or not.

If the kernel doesn't have enough information to make a decision
it should err on the side of functionality - we're talking about
fairly low-level power savings, but potentially several years of
aggregate confusion on the part of users.
the difference between a 10W and a 1W footprint is a long series of
'low-level power savings'.

If users are getting confused and if hardware gets broken then tha's
a plain bug and the wrong path is being walked.

Yes. And powersaving is a tradeoff between functionality and power
consumption. The kernel doesn't know what level of functionality a given
user requires. It *can't* know that itself.

Users are generally ok at realising correlation between a setting
change and something no longer working, so as long as you provide
that they'll be happy. I agree that this sucks. What we actually
want is some means of reliably identifying whether a port is
hotplug or not, but eSATA makes this very difficult.
Is it impossible?

To the best of my knowledge, yes.

Well, in some cases we can get an idea - the current AHCI spec has bits in the PxCMD register (External SATA Port and Hot Plug Capable Port) which can indicate which ports are externally accessible and thus are likely to receive hotplug events. Of course, these are supposed to be programmed by the BIOS based on the particular motherboard/machine, and we all know how accurate BIOS-reported information can be..
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/