Bug 19762
Summary: | Intel_idle does not Detect C6 - MSI Wind U110 | ||
---|---|---|---|
Product: | Power Management | Reporter: | Dennis Jansen (dennis.jansen) |
Component: | Other | Assignee: | Len Brown (lenb) |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | acpi-bugzilla, florian, rui.zhang |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.35 | Subsystem: | |
Regression: | No | Bisected commit-id: | |
Attachments: |
dmesg (2.6.35-22ck-generic Ubuntu)
acpi-MSI-Wind-U110.dump lspci cpuinfo enable Atom C6 cpu0cst.dat cpu0ist.dat cpu1cst.dat cpu1ist.dat refreshed patch vs 2.6.36-rc7 enabling ATM-C6 patch: install table handler before any dynamic tables are loaded |
Description
Dennis Jansen
2010-10-05 05:31:12 UTC
Created attachment 32582 [details]
dmesg (2.6.35-22ck-generic Ubuntu)
Created attachment 32592 [details]
acpi-MSI-Wind-U110.dump
thanks for the acpidump.
please attach a copy of the files found under
/sys/firmware/acpi/tables/dynamic
> 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]
lspci
Created attachment 32652 [details]
cpuinfo
> 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]
cpu0cst.dat
Created attachment 32732 [details]
cpu0ist.dat
Created attachment 32742 [details]
cpu1cst.dat
Created attachment 32752 [details]
cpu1ist.dat
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: http://ppa.launchpad.net/gma500/ppa/ubuntu with ubuntu 9.10 why? 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 _CST: Package (0x04) { ResourceTemplate () { Register (FFixedHW, 0x01, // Bit Width 0x02, // Bit Offset 0x0000000000000052, // Address 0x03, // Access Size ) }, 0x03, 0x8C, 0x0A } 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, > right? 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!!! commit 7fcca7d900957b43c84da171b750afcf1682808a Author: Len Brown <len.brown@intel.com> 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 |