Re: [linux-pm] [PATCH 0/8] Suspend block api (version 6)

From: Rafael J. Wysocki
Date: Thu May 13 2010 - 18:27:34 EST


On Friday 14 May 2010, Tony Lindgren wrote:
> * Alan Stern <stern@xxxxxxxxxxxxxxxxxxx> [100513 14:56]:
> > On Thu, 13 May 2010, Tony Lindgren wrote:
> >
> > > > > And that's why
> > > > > it should be handled by runtime power management instead.
> > > >
> > > > Runtime PM is not capable of freezing userspace and shutting down CPUs.
> > > > More or less by definition -- if it could then it wouldn't be "runtime"
> > > > any more, since the processor wouldn't be running.
> > >
> > > Not true. We are already powering off CPUs and rebooting them for
> > > at least omaps in every idle loop using cpuidle. The memory stays on.
> >
> > Okay, that's a valid point. But is that approach usable in general
> > (i.e., on non-OMAP systems)?
>
> Yes if your system wakes to interrupts at least. If your system does
> not wake to timer events, then you'll get missed timers. So it should
> work on PC too with CONFIG_NO_HZ and if RTC was used for the timer
> wake event.
>
> > How do you handle situations where the CPU is currently idle but an
> > event (such as I/O completion) is expected to occur in the near future?
> > You don't want to power-off and reboot then, do you?
>
> The idle code looks at next_timer_interrupt() value, then if the
> next timer event if far enough ahead, the system powers down and
> wakes to the timer interrupt. It also wakes to device interrupts.

For the record, waking to interrupts doesn't work on quite some systems
(like ACPI-based PCs for one example).

Rafael
--
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/