summaryrefslogtreecommitdiffstats
path: root/sys/amd64/amd64/mp_machdep.c
diff options
context:
space:
mode:
authorattilio <attilio@FreeBSD.org>2009-05-14 17:43:00 +0000
committerattilio <attilio@FreeBSD.org>2009-05-14 17:43:00 +0000
commit902219327c608b14c9bcbd63038b9842bae52f7b (patch)
tree22b20a38e37e187948ac0d924a006065dcd27968 /sys/amd64/amd64/mp_machdep.c
parentb8aa665b4a6150092ef1acac35dac70302c2795d (diff)
downloadFreeBSD-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.c20
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;
OpenPOWER on IntegriCloud