x86_64-specific part of the new mechanism to allow debuggers to learn about starting/dying CPUs as early/late as possible. From: Jan Beulich Index: 2.6.14-nlkd/arch/x86_64/kernel/process.c =================================================================== --- 2.6.14-nlkd.orig/arch/x86_64/kernel/process.c 2005-11-09 10:40:17.000000000 +0100 +++ 2.6.14-nlkd/arch/x86_64/kernel/process.c 2005-11-04 16:19:33.000000000 +0100 @@ -164,6 +164,7 @@ DECLARE_PER_CPU(int, cpu_state); static inline void play_dead(void) { idle_task_exit(); + cpu_notify(CPU_DYING); wbinvd(); mb(); /* Ack it */ Index: 2.6.14-nlkd/arch/x86_64/kernel/smpboot.c =================================================================== --- 2.6.14-nlkd.orig/arch/x86_64/kernel/smpboot.c 2005-11-09 10:40:17.000000000 +0100 +++ 2.6.14-nlkd/arch/x86_64/kernel/smpboot.c 2005-11-04 16:19:33.000000000 +0100 @@ -40,7 +40,7 @@ #include #include - +#include #include #include #include @@ -479,6 +479,8 @@ void __cpuinit start_secondary(void) /* otherwise gcc will move up the smp_processor_id before the cpu_init */ barrier(); + cpu_notify(CPU_ALIVE); + Dprintk("cpu %d: setting up apic clock\n", smp_processor_id()); setup_secondary_APIC_clock();