Kernel Bug Tracker – Bug 19762
Intel_idle does not Detect C6 - MSI Wind U110
Last modified: 2010-10-31 19:24:32 UTC
I will attach acpidump and dmesg.
Created attachment 32582 [details]
dmesg (2.6.35-22ck-generic Ubuntu)
Created attachment 32592 [details]
thanks for the acpidump.
please attach a copy of the files found under
> intel_idle: MWAIT substates: 0x3020220
> intel_idle: v0.4 model 0x1C
> intel_idle: lapic_timer_reliable_states 0x6
Yep, this system advertises C6 with 3 sub-states.
Please paste the output from 'cat /proc/cpuinfo' and 'lspci'
Created attachment 32642 [details]
Created attachment 32652 [details]
> There are no files in .../dynamic/
Hmmm, please check again when disabling intel_idle
(via CONFIG_INTEL_IDLE=n or "acpi_idle.max_cstate=0")
or if that doesn't work, you should be able to
get the same data files manually this way:
acpidump -a 0x7FAA0270 -l 0x00000259 > cpu0ist.dat
acpidump -a 0x7FAA01A0 -l 0x000000CC > cpu1ist.dat
acpidump -a 0x7FAA0560 -l 0x0000072D > cpu0cst.dat
acpidump -a 0x7FAA04D0 -l 0x00000085 > cpu1cst.dat
Created attachment 32702 [details]
enable Atom C6
Here is the patch I have in mind.
I need to see ACPI's _CST before knowing for sure if it is correct,
but you can go ahead and test it now.
Created attachment 32722 [details]
Created attachment 32732 [details]
Created attachment 32742 [details]
Created attachment 32752 [details]
There were no files no matter whether I had intel_idle active or not so I have attached the requested acpidumps. I am compiling the kernel right now to check the modifications ("backported" to 2.6.35 - why it didn't apply I don't know)
ah, i should have mentioned that the patch in comment #7
is built on the upstream kernel tree, linux-2.6.36-rc7.
It may be easiest to grab the latest intel_idle.c from there
and apply the patch on top of it.
curious on /sys/firmware/acpi/tables/dynamic/ missing.
If you are in ACPI mode, using acpi_idle, and using deep C-states
then you'd need the _CST that is loaded dynamically,
and when a dynamic SSDT is loaded, it should appear in sysfs.
The patch works as expected. Now I can use the C6 state no matter if the power adapter is connected or not, thanks! ;)
And the weird hickup that unplugging the power during standby means no C6 after wake should be fixed, too.
btw. I use the psb module from gma500 ppa:
with ubuntu 9.10
I tried again. C6 is activated when I unplug the power adapter. But nothing appeared in /sys where you said -- empty dir.
when I unplug dmesg says:
[ 491.467111] Monitor-Mwait will be used to enter C-3 state
[ 491.477106] Monitor-Mwait will be used to enter C-3 state
I'm now trying with intel_idle from git + patch as is just to be absolutely sure.
Ok, won't compile (error: ‘CPUIDLE_FLAG_TLB_FLUSHED’ undeclared here (not in a function).
But it works fine!
Tested-by: Dennis Jansen <Dennis.Jansen (at) web (...) de
Re: comment #8
0x01, // Bit Width
0x02, // Bit Offset
0x0000000000000052, // Address
0x03, // Access Size
This AML verifies that ATM-C6 should be entered with sub-state 2, ie 0x52,
and the 0x8C is 140usec worst case latency.
re: comment #14
thanks for verifying that the patch gives you c6 on both AC and DC.
> And the weird hickup that unplugging the power during standby
> means no C6 after wake should be fixed, too.
Interesting. I that is either an ACPI BIOS bug
or a Linux kernel ACPI bug. Mis-guided ACPI-BIOS feature anyway.
dmesg in comment #1 show that the dynamic SSDT's are loaded.
Very strange that they are not visible in /sys/firmware/acpi/tables/dynamic
If you could, it would be ideal to file a new bug for that issue
in the ACPI category.
Re: comment #18
the patch builds for me on top of the latest git tree.
I'd supply a back-port, but the reality is that all the patches
underneath it are going to .stable anyway; so mixing their
order would just complicate things.
Created attachment 32922 [details]
refreshed patch vs 2.6.36-rc7 enabling ATM-C6
Here is the patch as staged to go upstream.
It is functionally the same as the previous patch,
but with tweaked C-state parameters to match
what we observed in the ACPI table.
Created attachment 32932 [details]
patch: install table handler before any dynamic tables are loaded
I assume you can see SSDT1/SSDT2/SSDT3/SSDT4 in /sys/firmware/acpi/tables, right?
can you please apply this patch and see if /sys/firmware/acpi/tables/dynamic is still empty?
(In reply to comment #21)
> patch: install table handler before any dynamic tables are loaded
> I assume you can see SSDT1/SSDT2/SSDT3/SSDT4 in /sys/firmware/acpi/tables,
Yes, I see them: APIC DSDT dynamic/ FACP FACS GSCI HPET MCFG OEMB SLIC SSDT1 SSDT2 SSDT3 SSDT4 SSDT5
> can you please apply this patch and see if /sys/firmware/acpi/tables/dynamic is
> still empty?
Sorry, it doesn't apply to 2.6.35. I don't have git on my netbook. it's hard enough to get it all together and running well in the first place with the psb module. Maybe when I switch to 2.6.36 eventually I can try this patch.
ps. Thanks Len!!!
Author: Len Brown <firstname.lastname@example.org>
Date: Tue Oct 5 13:43:14 2010 -0400
intel_idle: enable Atom C6
is shipping in linux-2.6.36-rc8
this bug report is closed.
ideally, a new but report should be created
for the (independent) issue regarding the dynamic tables.
It sounded like Zhang Rui has a fix in #21. Did that go into 2.6.36, too? Or can you tell me how to port it to 2.6.35, it seems like a one-liner?
Zhang tracked it seperately in bug #21142