summaryrefslogtreecommitdiffstats
path: root/sys/i386/include/mptable.h
diff options
context:
space:
mode:
authorps <ps@FreeBSD.org>2003-08-12 17:01:10 +0000
committerps <ps@FreeBSD.org>2003-08-12 17:01:10 +0000
commita131a4bfe3692af86587ae0c330c46139f58509a (patch)
tree8b7136dca796c7184cda1a7987a7e22646117b7b /sys/i386/include/mptable.h
parent5ac4d3d0e1357cf019629ca3aced730e0484f211 (diff)
downloadFreeBSD-src-a131a4bfe3692af86587ae0c330c46139f58509a.zip
FreeBSD-src-a131a4bfe3692af86587ae0c330c46139f58509a.tar.gz
Halted CPU's should not accumulate time.
Reviewed by: jhb
Diffstat (limited to 'sys/i386/include/mptable.h')
-rw-r--r--sys/i386/include/mptable.h12
1 files changed, 6 insertions, 6 deletions
diff --git a/sys/i386/include/mptable.h b/sys/i386/include/mptable.h
index 0bb0fc7..142ad9c 100644
--- a/sys/i386/include/mptable.h
+++ b/sys/i386/include/mptable.h
@@ -341,6 +341,10 @@ void ap_init(void);
static int apic_int_is_bus_type(int intr, int bus_type);
static void release_aps(void *dummy);
+static int hlt_cpus_mask;
+static int hlt_logical_cpus = 1;
+static struct sysctl_ctx_list logical_cpu_clist;
+
/*
* initialize all the SMP locks
*/
@@ -2679,7 +2683,7 @@ forward_statclock(void)
if (!smp_started || cold || panicstr)
return;
- map = PCPU_GET(other_cpus) & ~stopped_cpus ;
+ map = PCPU_GET(other_cpus) & ~(stopped_cpus|hlt_cpus_mask);
if (map != 0)
ipi_selected(map, IPI_STATCLOCK);
}
@@ -2711,7 +2715,7 @@ forward_hardclock(void)
if (!smp_started || cold || panicstr)
return;
- map = PCPU_GET(other_cpus) & ~stopped_cpus ;
+ map = PCPU_GET(other_cpus) & ~(stopped_cpus|hlt_cpus_mask);
if (map != 0)
ipi_selected(map, IPI_HARDCLOCK);
}
@@ -2791,10 +2795,6 @@ release_aps(void *dummy __unused)
SYSINIT(start_aps, SI_SUB_SMP, SI_ORDER_FIRST, release_aps, NULL);
-static int hlt_cpus_mask;
-static int hlt_logical_cpus = 1;
-static struct sysctl_ctx_list logical_cpu_clist;
-
static int
sysctl_hlt_cpus(SYSCTL_HANDLER_ARGS)
{
OpenPOWER on IntegriCloud