aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/smp.c
diff options
context:
space:
mode:
authorHeiko Carstens <heiko.carstens@de.ibm.com>2009-09-11 04:29:03 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2009-09-11 04:29:55 -0400
commit4bb5e07b68565d7983108993aa23eccf5f1b35fe (patch)
treea76f2d5933cc8d90878f3df2d29f09fbd952daca /arch/s390/kernel/smp.c
parent53f8c573ea3b54b7e1b81d2cd403373b08103736 (diff)
[S390] Limit cpu detection to 256 physical cpus.
Saves us more than 65k pointless IPIs. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/smp.c')
-rw-r--r--arch/s390/kernel/smp.c5
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/s390/kernel/smp.c b/arch/s390/kernel/smp.c
index be2cae083406..9261495ca2c3 100644
--- a/arch/s390/kernel/smp.c
+++ b/arch/s390/kernel/smp.c
@@ -49,6 +49,7 @@
49#include <asm/sclp.h> 49#include <asm/sclp.h>
50#include <asm/cputime.h> 50#include <asm/cputime.h>
51#include <asm/vdso.h> 51#include <asm/vdso.h>
52#include <asm/cpu.h>
52#include "entry.h" 53#include "entry.h"
53 54
54static struct task_struct *current_set[NR_CPUS]; 55static struct task_struct *current_set[NR_CPUS];
@@ -300,7 +301,7 @@ static int smp_rescan_cpus_sigp(cpumask_t avail)
300 logical_cpu = cpumask_first(&avail); 301 logical_cpu = cpumask_first(&avail);
301 if (logical_cpu >= nr_cpu_ids) 302 if (logical_cpu >= nr_cpu_ids)
302 return 0; 303 return 0;
303 for (cpu_id = 0; cpu_id <= 65535; cpu_id++) { 304 for (cpu_id = 0; cpu_id <= MAX_CPU_ADDRESS; cpu_id++) {
304 if (cpu_known(cpu_id)) 305 if (cpu_known(cpu_id))
305 continue; 306 continue;
306 __cpu_logical_map[logical_cpu] = cpu_id; 307 __cpu_logical_map[logical_cpu] = cpu_id;
@@ -379,7 +380,7 @@ static void __init smp_detect_cpus(void)
379 /* Use sigp detection algorithm if sclp doesn't work. */ 380 /* Use sigp detection algorithm if sclp doesn't work. */
380 if (sclp_get_cpu_info(info)) { 381 if (sclp_get_cpu_info(info)) {
381 smp_use_sigp_detection = 1; 382 smp_use_sigp_detection = 1;
382 for (cpu = 0; cpu <= 65535; cpu++) { 383 for (cpu = 0; cpu <= MAX_CPU_ADDRESS; cpu++) {
383 if (cpu == boot_cpu_addr) 384 if (cpu == boot_cpu_addr)
384 continue; 385 continue;
385 __cpu_logical_map[CPU_INIT_NO] = cpu; 386 __cpu_logical_map[CPU_INIT_NO] = cpu;