Re: Re: [PATCHES] add _CST support

Len Brown
2004-12-23T05:07:22Z

On Wed, 2004-12-22 at 19:10, Dominik Brodowski wrote:
> > I found I had to disable the bm_check to get out of C1
> > on my D600. This doesn't sound right, as bm_check
> > should only have an effect on entering C3.
>
> Huh, yes, this sounds like a bug. Can't reproduce it here, though :-(

neither can I...

> > cat /proc/acpi/processor/CPU0/power
> > active state: 3
> > max_cstate: C42
> > bus master activity: 00000000
> > states:
> > 1: type[C1] promotion[2] demotion[-]
> latency[001]
> > usage[00000010]
> > 2: type[C2] promotion[3] demotion[1]
> latency[001]
> > usage[00003280]
> > *3: type[C3] promotion[4] demotion[2]
> latency[085]
> > usage[00000819]
> > 4: type[C3] promotion[-] demotion[2]
> latency[185]
> > usage[00000000]
> >
> > It appears the demotion from C4 is to C2, when one would expect C3.
>
> Actually, this was on purpose: I think we want to leave C3-type sleep
> quickly to advance bus master activity...

The hardware transitions us from C3 to C0 automatically, and retires the
bus master activity automatically.

The software bookeeping here is only to decide what to enter
the next time we enter idle.

I agree that the promote/demote algorithm needs some work, particularly
its tracking of bus master activity, and system busy-ness rather than
just idleness. But with the current scheme, I believe that C4 should
demote to C3, not to C2.

thanks,
-Len