Bug 29722
Summary: | kworker consumes ~100% CPU on HP Elitebook 8540w after resume | ||
---|---|---|---|
Product: | ACPI | Reporter: | Ortwin Glück (odi) |
Component: | Config-Interrupts | Assignee: | acpi_config-interrupts |
Status: | CLOSED CODE_FIX | ||
Severity: | normal | CC: | florian, m.debruijne, maciej.rutecki, rjw |
Priority: | P1 | ||
Hardware: | All | ||
OS: | Linux | ||
Kernel Version: | 2.6.37 | Subsystem: | |
Regression: | Yes | Bisected commit-id: | |
Bug Depends on: | |||
Bug Blocks: | 7216, 21782 | ||
Attachments: |
top after resume
perf top after resume dmesg of full suspend/resume cycle ACPI interrupts before/after suspend PCIe port resume debug patch acpidump output .config PCI / ACPI: Call _OSC if ASPM is not supported ACPI / PCI: Set _OSC support bits together lspci -vvvxxx before suspend lspci -vvvxxx after resume PCI/ACPI: Report ASPM support to BIOS if not disabled from command line |
Description
Ortwin Glück
2011-02-23 11:49:25 UTC
Created attachment 48722 [details]
top after resume
Created attachment 48732 [details]
perf top after resume
Created attachment 48742 [details]
dmesg of full suspend/resume cycle
Please post the output of $ egrep 'disabled|enabled' /sys/firmware/acpi/interrupts/* before suspend and after resume. Created attachment 48842 [details]
ACPI interrupts before/after suspend
Thanks. So GPE 01 is enabled both before suspend and after resume, but it only starts to trigger after resume. Interesting. First, please attach the output of acpidump from your machine. Created attachment 48852 [details]
PCIe port resume debug patch
Second, please check if this patch makes a difference.
Created attachment 48862 [details]
acpidump output
Patch from comment 7 doesn't apply to 2.6.37. The lines in question have been added only later. So is the problem reproducible with 2.6.38-rc6 (or later)? I have tried vanilla 2.6.38-rc6 and patch from comment 7 on top of that. Both exhibt the problem after resume, unfortunately. Same interrupts. Please unset CONFIG_HOTPLUG_PCI_PCIE in the kernel .config and set CONFIG_HOTPLUG_PCI_ACPI so that it is built in (not as a module) and check of the problem is reproducible with that kernel configuration. Either way, please attach the output of dmesg including one suspend/resume cycle and boot messages. Created attachment 49562 [details]
.config
PCIE Hotplug was already disabled, and ACPI hotplug was already built-in (I never build modules). dmesg attachment is already present. Thanks for being so responsive and keeping looking into the problem. I'll try whatever I can to help resolve the issue.
Please attach the output of 'lspci -vvvxxx' after resume (ie. when the GPE storm is going on). Created attachment 49792 [details]
PCI / ACPI: Call _OSC if ASPM is not supported
Created attachment 49802 [details]
ACPI / PCI: Set _OSC support bits together
Please apply this patch on top of the previous one (on top of 2.6.38-rc6+)
and see if that makes a difference.
I mean please apply the patch from comment #16 on top of the patch from comment #15. Created attachment 49862 [details]
lspci -vvvxxx before suspend
Created attachment 49872 [details]
lspci -vvvxxx after resume
Rafael, I confirm that the patches of comment 15 and comment 16 on top of 2.6.38-rc7 do fix the problem. Now gpe01 no longer fires after resume. I'll use this kernel today to do some real work. I will report back if any related issues occur. Thanks for your outstanding support! Created attachment 49952 [details]
PCI/ACPI: Report ASPM support to BIOS if not disabled from command line
Please check if this patch (on top of 2.6.38-rc7) helps too (instead of the
previous two patches).
Positive. Also patch from comment 21 on top of a plain 2.6.38-rc7 resolves the problem. Handled-By : Rafael J. Wysocki <rjw@sisk.pl> Patch : https://patchwork.kernel.org/patch/604371/ A patch referencing this bug report has been merged in v2.6.38-8876-g036a982: commit 8b8bae901ce23addbdcdb54fa1696fb2d049feb5 Author: Rafael J. Wysocki <rjw@sisk.pl> Date: Sat Mar 5 13:21:51 2011 +0100 PCI/ACPI: Report ASPM support to BIOS if not disabled from command line |