diff options
author | attilio <attilio@FreeBSD.org> | 2009-05-14 17:43:00 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2009-05-14 17:43:00 +0000 |
commit | 902219327c608b14c9bcbd63038b9842bae52f7b (patch) | |
tree | 22b20a38e37e187948ac0d924a006065dcd27968 /sys/amd64/amd64/mp_machdep.c | |
parent | b8aa665b4a6150092ef1acac35dac70302c2795d (diff) | |
download | FreeBSD-src-902219327c608b14c9bcbd63038b9842bae52f7b.zip FreeBSD-src-902219327c608b14c9bcbd63038b9842bae52f7b.tar.gz |
FreeBSD right now support 32 CPUs on all the architectures at least.
With the arrival of 128+ cores it is necessary to handle more than that.
One of the first thing to change is the support for cpumask_t that needs
to handle more than 32 bits masking (which happens now). Some places,
however, still assume that cpumask_t is a 32 bits mask.
Fix that situation by using always correctly cpumask_t when needed.
While here, remove the part under STOP_NMI for the Xen support as it
is broken in any case.
Additively make ipi_nmi_pending as static.
Reviewed by: jhb, kmacy
Tested by: Giovanni Trematerra <giovanni dot trematerra at gmail dot com>
Diffstat (limited to 'sys/amd64/amd64/mp_machdep.c')
-rw-r--r-- | sys/amd64/amd64/mp_machdep.c | 20 |
1 files changed, 10 insertions, 10 deletions
diff --git a/sys/amd64/amd64/mp_machdep.c b/sys/amd64/amd64/mp_machdep.c index f398a24..a989d10 100644 --- a/sys/amd64/amd64/mp_machdep.c +++ b/sys/amd64/amd64/mp_machdep.c @@ -114,9 +114,9 @@ volatile int smp_tlb_wait; extern inthand_t IDTVEC(fast_syscall), IDTVEC(fast_syscall32); #ifdef STOP_NMI -volatile cpumask_t ipi_nmi_pending; +static volatile cpumask_t ipi_nmi_pending; -static void ipi_nmi_selected(u_int32_t cpus); +static void ipi_nmi_selected(cpumask_t cpus); #endif /* @@ -1016,7 +1016,7 @@ smp_tlb_shootdown(u_int vector, vm_offset_t addr1, vm_offset_t addr2) } static void -smp_targeted_tlb_shootdown(u_int mask, u_int vector, vm_offset_t addr1, vm_offset_t addr2) +smp_targeted_tlb_shootdown(cpumask_t mask, u_int vector, vm_offset_t addr1, vm_offset_t addr2) { int ncpu, othercpus; @@ -1090,7 +1090,7 @@ smp_invlpg_range(vm_offset_t addr1, vm_offset_t addr2) } void -smp_masked_invltlb(u_int mask) +smp_masked_invltlb(cpumask_t mask) { if (smp_started) { @@ -1099,7 +1099,7 @@ smp_masked_invltlb(u_int mask) } void -smp_masked_invlpg(u_int mask, vm_offset_t addr) +smp_masked_invlpg(cpumask_t mask, vm_offset_t addr) { if (smp_started) { @@ -1108,7 +1108,7 @@ smp_masked_invlpg(u_int mask, vm_offset_t addr) } void -smp_masked_invlpg_range(u_int mask, vm_offset_t addr1, vm_offset_t addr2) +smp_masked_invlpg_range(cpumask_t mask, vm_offset_t addr1, vm_offset_t addr2) { if (smp_started) { @@ -1143,7 +1143,7 @@ ipi_bitmap_handler(struct trapframe frame) * send an IPI to a set of cpus. */ void -ipi_selected(u_int32_t cpus, u_int ipi) +ipi_selected(cpumask_t cpus, u_int ipi) { int cpu; u_int bitmap = 0; @@ -1206,8 +1206,8 @@ ipi_all_but_self(u_int ipi) #define BEFORE_SPIN 1000000 -void -ipi_nmi_selected(u_int32_t cpus) +static void +ipi_nmi_selected(cpumask_t cpus) { int cpu; register_t icrlo; @@ -1331,7 +1331,7 @@ SYSINIT(start_aps, SI_SUB_SMP, SI_ORDER_FIRST, release_aps, NULL); static int sysctl_hlt_cpus(SYSCTL_HANDLER_ARGS) { - u_int mask; + cpumask_t mask; int error; mask = hlt_cpus_mask; |