lkml.org 
[lkml]   [2011]   [Apr]   [2]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: Linux 2.6.33.8
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.


\
 
 \ /
  Last update: 2011-04-02 23:15    [W:0.074 / U:2.184 seconds]
©2003-2018 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site