Re: Linux 2.6.33.8
From: Carsten Emde
Date: Sat Apr 02 2011 - 17:12:09 EST
On 04/02/2011 11:14 AM, Carsten Emde wrote:
[..]
CPU info:
vendor_id : GenuineIntel
cpu family : 6
model : 44
model name : Intel(R) Core(TM) i7 CPU X 980 @ 3.33GHz
stepping : 2
This is the situation:
1. Without commit ea53069231f9317062910d6e772cca4ce93de8c8:
Everything is fine. The system correctly powers off.
2. With commit ea53069231f9317062910d6e772cca4ce93de8c8:
a) Frequency scaling never enabled (acpi_cpufreq not loaded,
cpufreq_ondemand not loaded):
Everything is fine. The system correctly powers off.
b) Frequency scaling enabled (acpi_cpufreq loaded, cpufreq_ondemand
loaded) or
c) Frequency scaling enabled and disabled (acpi_cpufreq still loaded
since it cannot be removed easily, cpufreq_ondemand no longer
loaded) or
d) Frequency scaling enabled and disabled (acpi_cpufreq unloaded
with force, cpufreq_ondemand no longer loaded):
Not powering off, message:
ACPI: Preparing to enter system sleep state S5
Disabling non-boot CPUs ...
In a next step, I will debug arch/x86/kernel/smpboot.c to find out why
mwait_play_dead() returns when frequency scaling was not enabled and why
it does not after it was enabled.
This assumption was incorrect. After inserting a number of debug outputs
to kernel_power_off(), native_play_dead() and mwait_play_dead(), it
turns out that the initial code path in case of the correct poweroff and
the failed poweroff is identical:
Frequency scaling Frequency scaling
never enabled enabled and disabled
kernel_power_off() kernel_power_off()
"ACPI: Preparing to enter "ACPI: Preparing to enter
system sleep state S5" system sleep state S5"
kernel_power_off() kernel_power_off()
"Disabling non-boot CPUs ..." "Disabling non-boot CPUs ..."
1 native_play_dead() 1 native_play_dead()
mwait_play_dead() mwait_play_dead()
2 native_play_dead() 2 native_play_dead()
mwait_play_dead() mwait_play_dead()
3 native_play_dead() 3 native_play_dead()
mwait_play_dead() mwait_play_dead()
4 native_play_dead() 4 native_play_dead()
mwait_play_dead() mwait_play_dead()
5 native_play_dead() 5 native_play_dead()
mwait_play_dead() mwait_play_dead()
6 native_play_dead() 6 native_play_dead()
mwait_play_dead() mwait_play_dead()
7 native_play_dead() 7 native_play_dead()
mwait_play_dead() mwait_play_dead()
8 native_play_dead() 8 native_play_dead()
mwait_play_dead() mwait_play_dead()
9 native_play_dead()
mwait_play_dead()
10 native_play_dead()
mwait_play_dead()
11 native_play_dead()
mwait_play_dead()
kernel_power_off()
"PM: Calling mce_shutdown"
"PM: Calling i8259A_shutdown"
kernel_power_off()
"Power down."
kernel_power_off()
Apparently, the system hangs after eight CPUs have been disabled. I'll
try to provide some more debugging information. Does anybody out there
have any idea what's going on?
-Carsten.
--
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/