summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_sched.c
diff options
context:
space:
mode:
authorkettenis <kettenis@openbsd.org>2018-06-30 14:43:36 +0000
committerkettenis <kettenis@openbsd.org>2018-06-30 14:43:36 +0000
commit73dc9ed41e5e17f40235bc5d57c01c09dc7e76a2 (patch)
tree4597a90cf8d6148a651ef0cdccdb7569bc4ce12a /sys/kern/kern_sched.c
parentrevert ber.c r1.34, this break SNMPv3 authentication (diff)
downloadwireguard-openbsd-73dc9ed41e5e17f40235bc5d57c01c09dc7e76a2.tar.xz
wireguard-openbsd-73dc9ed41e5e17f40235bc5d57c01c09dc7e76a2.zip
Don't steal processes from other CPUs if we're not scheduling processes on
a CPU. ok deraadt@
Diffstat (limited to 'sys/kern/kern_sched.c')
-rw-r--r--sys/kern/kern_sched.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/sys/kern/kern_sched.c b/sys/kern/kern_sched.c
index f566795dc60..9de421f037a 100644
--- a/sys/kern/kern_sched.c
+++ b/sys/kern/kern_sched.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: kern_sched.c,v 1.48 2018/06/19 19:29:52 kettenis Exp $ */
+/* $OpenBSD: kern_sched.c,v 1.49 2018/06/30 14:43:36 kettenis Exp $ */
/*
* Copyright (c) 2007, 2008 Artur Grabowski <art@openbsd.org>
*
@@ -471,6 +471,10 @@ sched_steal_proc(struct cpu_info *self)
KASSERT((self->ci_schedstate.spc_schedflags & SPCF_SHOULDHALT) == 0);
+ /* Don't steal if we don't want to schedule processes in this CPU. */
+ if (!cpuset_isset(&sched_all_cpus, self))
+ return (NULL);
+
cpuset_copy(&set, &sched_queued_cpus);
while ((ci = cpuset_first(&set)) != NULL) {