Re: acpi_idle: Very idle Core i7 machine never enters C3

From: peng huang
Date: Wed Jan 27 2010 - 08:27:30 EST


2010-01-26 (ç) ã 08:59 -0600 ã Jeff Garrett ãããæãããã:
> On Tue, Jan 26, 2010 at 09:41:00PM +0900, peng huang wrote:
> > Hi,
> > can you show me the file /proc/acpi/processor/CPU*/power.
> > and are you sure your cpu usage is 0 or nearly zero.
>
> Yea, I'm pretty sure my cpu usage is nearly zero. powertop shows fewer
> than 20 wakeups per second, shows 99% C2 residency, top shows 100% idle,
> perf top shows acpi_idle_enter_simple as the most common function
> (~50%). Very little is running on the box, and I've compiled out the
> heavier parts of the kernel (such as USB)...
>
> (It still has ordinary userspace running, e.g. udev & hal, and still has
> sshd and network traffic, as examples.)
>
> This is all consistent with a very idle machine, I think.

yes,you processor is always in c2,it does means your system is nearly
ilde.

> > this is the info of my laptop(using core 2 processors):
> > powertop's output:
> > Cn Avg residency P-states (frequencies)
> > C0 (cpu running) (10.6%) 2.00 Ghz 1.9%
> > C0 0.0ms ( 0.0%) 1.67 Ghz 0.1%
> > C1 mwait 0.0ms ( 0.0%) 1333 Mhz 0.0%
> > C2 mwait 0.0ms ( 0.0%) 1000 Mhz 98.0%
> > C3 mwait 1.1ms (89.4%)
>
> Yea, my laptop also (also core 2) has 700-1000 wakeups/sec and spends
> greater than 80% of its time in C3... That's partly why I'm curious
> about what my core i7 desktop is doing.

So I think it is a core i7 thing.I have heard that some intel cpu have a
problem when in c2-state,maybe that is why you cpu cant enter c3-state.
I think there is some configuration about deep c-state in the bios,may
be you can try it(it cannot solve this problem...).
And in some bios there is a enhanced idle state configuration ,but i
dont known if it is the reason why the cpu cannot enter c3-state.You can
try it anyway.

With disable the deep c-state you BIOS will not give c3-info to the
OS,then you would see there is no c3-state in the OS.

> > and power things:
> > huang@huang-laptop:~$ cat /proc/acpi/processor/CPU0/power
> > active state: C0
> > max_cstate: C8
> > maximum allowed latency: 2000000000 usec
> > states:
> > C1: type[C1] promotion[--] demotion[--]
> > latency[001] usage[00002364] duration[00000000000000000000]
> > C2: type[C2] promotion[--] demotion[--]
> > latency[001] usage[00070662] duration[00000000000006013816]
> > C3: type[C3] promotion[--] demotion[--]
> > latency[017] usage[04774185] duration[00000000010838418152]
> >
> > you can see C3 with powertop,so i think your BIOS has enabled Deep
> > C-state.
>
> Here's my power files...
>
> /proc/acpi/processor/CPU0/power:
> active state: C0
> max_cstate: C8
> maximum allowed latency: 2000000000 usec
> states:
> C1: type[C1] promotion[--] demotion[--] latency[001] usage[00001470] duration[00000000000000000000]
> C2: type[C2] promotion[--] demotion[--] latency[017] usage[00234416] duration[00000000017165798539]
> C3: type[C3] promotion[--] demotion[--] latency[017] usage[00000000] duration[00000000000000000000]
> /proc/acpi/processor/CPU1/power:
> active state: C0
> max_cstate: C8
> maximum allowed latency: 2000000000 usec
> states:
> C1: type[C1] promotion[--] demotion[--] latency[001] usage[00000481] duration[00000000000000000000]
> C2: type[C2] promotion[--] demotion[--] latency[017] usage[00090169] duration[00000000017188463157]
> C3: type[C3] promotion[--] demotion[--] latency[017] usage[00000000] duration[00000000000000000000]
> /proc/acpi/processor/CPU2/power:
> active state: C0
> max_cstate: C8
> maximum allowed latency: 2000000000 usec
> states:
> C1: type[C1] promotion[--] demotion[--] latency[001] usage[00000418] duration[00000000000000000000]
> C2: type[C2] promotion[--] demotion[--] latency[017] usage[00068874] duration[00000000017193805291]
> C3: type[C3] promotion[--] demotion[--] latency[017] usage[00000000] duration[00000000000000000000]
> /proc/acpi/processor/CPU3/power:
> active state: C0
> max_cstate: C8
> maximum allowed latency: 2000000000 usec
> states:
> C1: type[C1] promotion[--] demotion[--] latency[001] usage[00001356] duration[00000000000000000000]
> C2: type[C2] promotion[--] demotion[--] latency[017] usage[00362752] duration[00000000017156707397]
> C3: type[C3] promotion[--] demotion[--] latency[017] usage[00000000] duration[00000000000000000000]
>
> >
> > -huang
> >
> > 2010-01-26 (ç) ã 02:47 -0600 ã Jeff Garrett ãããæãããã:
> > > Hi,
> > >
> > > I was trying to chase down a theory that my desktop machine (a core i7)
> > > is running warm (the fan sounds like it's at full speed all the time,
> > > and I think it's not always acted this way -- hence the theory).
> > >
> > > powertop is never showing it spending any time in C3...
> > >
> > > I compiled a kernel without USB/sound/radeon, and ran without X. I was
> > > able to get the wakeups/sec down below 20, but no time is spent in C3.
> > >
> > > sysfs looks to agree with powertop here (time = 0 on C3):
> > > /sys/devices/system/cpu/cpu0/cpuidle/state0/desc: CPUIDLE CORE POLL IDLE
> > > /sys/devices/system/cpu/cpu0/cpuidle/state0/latency: 0
> > > /sys/devices/system/cpu/cpu0/cpuidle/state0/name: C0
> > > /sys/devices/system/cpu/cpu0/cpuidle/state0/power: 4294967295
> > > /sys/devices/system/cpu/cpu0/cpuidle/state0/time: 457
> > > /sys/devices/system/cpu/cpu0/cpuidle/state0/usage: 59
> > > /sys/devices/system/cpu/cpu0/cpuidle/state1/desc: ACPI FFH INTEL MWAIT 0x0
> > > /sys/devices/system/cpu/cpu0/cpuidle/state1/latency: 1
> > > /sys/devices/system/cpu/cpu0/cpuidle/state1/name: C1
> > > /sys/devices/system/cpu/cpu0/cpuidle/state1/power: 1000
> > > /sys/devices/system/cpu/cpu0/cpuidle/state1/time: 308177
> > > /sys/devices/system/cpu/cpu0/cpuidle/state1/usage: 3975
> > > /sys/devices/system/cpu/cpu0/cpuidle/state2/desc: ACPI FFH INTEL MWAIT 0x10
> > > /sys/devices/system/cpu/cpu0/cpuidle/state2/latency: 17
> > > /sys/devices/system/cpu/cpu0/cpuidle/state2/name: C2
> > > /sys/devices/system/cpu/cpu0/cpuidle/state2/power: 500
> > > /sys/devices/system/cpu/cpu0/cpuidle/state2/time: 873440787
> > > /sys/devices/system/cpu/cpu0/cpuidle/state2/usage: 239038
> > > /sys/devices/system/cpu/cpu0/cpuidle/state3/desc: ACPI FFH INTEL MWAIT 0x20
> > > /sys/devices/system/cpu/cpu0/cpuidle/state3/latency: 17
> > > /sys/devices/system/cpu/cpu0/cpuidle/state3/name: C3
> > > /sys/devices/system/cpu/cpu0/cpuidle/state3/power: 350
> > > /sys/devices/system/cpu/cpu0/cpuidle/state3/time: 0
> > > /sys/devices/system/cpu/cpu0/cpuidle/state3/usage: 0
> > >
> > > This may be a complete red herring, but I added some printk logic to
> > > acpi_idle_bm_check(), and it is getting called often, but bm_status is
> > > always 1. [I infer from this that the idle logic is trying to go into
> > > C3, but this check is stopping it... Unless I misread something.]
> > >
> > > Is this expected behavior or is this a legitimate problem?
> > >
> > > How might I investigate this further?
> > >
> > > Attaching dmesg, /proc/cpuinfo, powertop -d output.
> > >
> > > Thanks,
> > > Jeff Garrett
> >
> >
> > --
> > peng huang <huangpeng.linux@xxxxxxxxx>
> >


--
peng huang <huangpeng.linux@xxxxxxxxx>

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