diff options
Diffstat (limited to 'sys/kern')
| -rw-r--r-- | sys/kern/sched_ule.c | 16 |
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) ) { |
