Skip to contentSkip to conversation

fix smp_processor_id() use in the cache-hot autodetector

PATCH New Ingo Molnar 1 participant 1 message Nov 15, 2005

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 fix smp_processor_id() use in the cache-hot autodetector

this patch fixes the DEBUG_PREEMPT warnings reported by Paul Jackson. The reason why raw_smp_processor_id() is fine here is that we dont care about the _precise_ CPU ID the boot process happens on, only about the quad. (the reason for this whole code is that NUMAQ doesnt like being migrated to a non-boot quad.) So we mark whatever CPU ID we happen to be on, and migrate back to it once calibration has finished.

 kernel/sched.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)
kernel/sched.c +2 -2
Index: linux/kernel/sched.c
===================================================================
@@ -5480,7 +5480,7 @@ __devinit static unsigned long long meas
 
 void __devinit calibrate_migration_costs(void)
 {
-	int cpu1 = -1, cpu2 = -1, cpu, orig_cpu = smp_processor_id();
+	int cpu1 = -1, cpu2 = -1, cpu, orig_cpu = raw_smp_processor_id();
 	struct sched_domain *sd;
 	unsigned long distance, max_distance = 0;
 	unsigned long long cost;
@@ -5567,7 +5567,7 @@ void __devinit calibrate_migration_costs
 	 * Move back to the original CPU. NUMA-Q gets confused
 	 * if we migrate to another quad during bootup.
 	 */
-	if (smp_processor_id() != orig_cpu) {
+	if (raw_smp_processor_id() != orig_cpu) {
 		cpumask_t mask = cpumask_of_cpu(orig_cpu),
 			saved_mask = current->cpus_allowed;