[patch] fix smp_processor_id() use in the cache-hot autodetector

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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.

Signed-off-by: Ingo Molnar <[email protected]>

 kernel/sched.c |    4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

Index: linux/kernel/sched.c
===================================================================
--- linux.orig/kernel/sched.c
+++ 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;
 
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [email protected]
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

[Index of Archives]     [Kernel Newbies]     [Netfilter]     [Bugtraq]     [Photo]     [Stuff]     [Gimp]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Video 4 Linux]     [Linux for the blind]     [Linux Resources]
  Powered by Linux