summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authorpeter <peter@FreeBSD.org>2002-01-05 09:38:47 +0000
committerpeter <peter@FreeBSD.org>2002-01-05 09:38:47 +0000
commit5e902a48f6ffa366d3573e7e7b3c571d7f384c9b (patch)
tree2869b61673054a14c50f42ca3755b21e38860d10 /sys
parentd0a39cc230c0913e147d6d457395dacacde596b3 (diff)
downloadFreeBSD-src-5e902a48f6ffa366d3573e7e7b3c571d7f384c9b.zip
FreeBSD-src-5e902a48f6ffa366d3573e7e7b3c571d7f384c9b.tar.gz
Fix forward_roundrobin(). It was mistakenly using the cpu number as
though it was a mask. As a result, we sent AST IPI's to the wrong cpu and/or left out some. Spotted by: jake
Diffstat (limited to 'sys')
-rw-r--r--sys/kern/subr_smp.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/subr_smp.c b/sys/kern/subr_smp.c
index 6b55133..2734f7e 100644
--- a/sys/kern/subr_smp.c
+++ b/sys/kern/subr_smp.c
@@ -147,8 +147,8 @@ forward_roundrobin(void)
map = 0;
SLIST_FOREACH(pc, &cpuhead, pc_allcpu) {
td = pc->pc_curthread;
- id = pc->pc_cpuid;
- if (id != PCPU_GET(cpuid) && (id & stopped_cpus) == 0 &&
+ id = pc->pc_cpumask;
+ if (id != PCPU_GET(cpumask) && (id & stopped_cpus) == 0 &&
td != pc->pc_idlethread) {
td->td_kse->ke_flags |= KEF_NEEDRESCHED;
map |= id;
OpenPOWER on IntegriCloud