Re: [RFC PATCH V3 2/3] cpuidle: list based cpuidle driverregistration and selection

From: Vaidyanathan Srinivasan
Date: Thu Feb 10 2011 - 12:17:25 EST


* Peter Zijlstra <peterz@xxxxxxxxxxxxx> [2011-02-10 10:53:30]:

> On Thu, 2011-02-10 at 12:30 +0530, Vaidyanathan Srinivasan wrote:
>
> > We discussed this in the previous posts. On ppc64 we would like to
> > have single global registration, but for x86 Arjan recommended that we
> > keep the per-cpu registration or else we may break legacy or buggy
> > devices.
> >
> > Ref: http://lkml.org/lkml/2009/10/7/210
> >
> > One corner case that was against using lowest common C-State is that
> > we could have cores/packages sporting a new lower C-State if they are
> > at a thermal limit and want the OS to go to much lower C-State and
> > sacrifice performance. Our global design will prevent that cpu from
> > going to a state lower than the rest of the system.
> >
> > This is only a remote possibility, but could happen on battery
> > operated devices, under low battery mode etc. Basically we would have
> > to keep our design open to allow individual CPUs to goto 'their'
> > deepest allowed sleep state even in a asymmetric case.
>
>
> But but but, its a stupid ACPI bug if it reports different C states for
> different CPUs.
>
> Len, does intel_idle also suffer this or does it simply ignore what ACPI
> has to say?
>
> Also, suppose for some daft reason it doesn't report C2 as available on
> one of the CPUs, what happens if we use it anyway? (ie, use the union of
> the reported states).

Using a union of available C-States on all CPUs will take care of the
above mentioned (buggy) case and generally simplify the registration
mechanism. This implies that a cpu is allowed to use any of the
registered ACPI C-States across the system.

--Vaidy

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