summaryrefslogtreecommitdiff
path: root/sys/kern/sched_ule.c
diff options
context:
space:
mode:
Diffstat (limited to 'sys/kern/sched_ule.c')
-rw-r--r--sys/kern/sched_ule.c16
1 files changed, 8 insertions, 8 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
index 233890f01fa4..1eb302e7111a 100644
--- a/sys/kern/sched_ule.c
+++ b/sys/kern/sched_ule.c
@@ -1778,6 +1778,14 @@ sched_add(struct thread *td, int flags)
return;
}
canmigrate = KSE_CAN_MIGRATE(ke);
+ /*
+ * Don't migrate running threads here. Force the long term balancer
+ * to do it.
+ */
+ if (ke->ke_flags & KEF_HOLD) {
+ ke->ke_flags &= ~KEF_HOLD;
+ canmigrate = 0;
+ }
#endif
KASSERT(ke->ke_state != KES_ONRUNQ,
("sched_add: kse %p (%s) already in run queue", ke,
@@ -1818,14 +1826,6 @@ sched_add(struct thread *td, int flags)
}
#ifdef SMP
/*
- * Don't migrate running threads here. Force the long term balancer
- * to do it.
- */
- if (ke->ke_flags & KEF_HOLD) {
- ke->ke_flags &= ~KEF_HOLD;
- canmigrate = 0;
- }
- /*
* If this thread is pinned or bound, notify the target cpu.
*/
if (!canmigrate && ke->ke_cpu != PCPU_GET(cpuid) ) {