From fae38f55581d8d132cabbdfdafff65fefc131798 Mon Sep 17 00:00:00 2001 From: davidxu Date: Fri, 19 Aug 2005 11:51:41 +0000 Subject: [PATCH] Move up code for testing KEF_HOLD to avoid ke_cpu being changed unexpectly for PRI_ITHD and PRI_REALTIME threads. --- sys/kern/sched_ule.c | 16 ++++++++-------- 1 file 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, @@ -1817,14 +1825,6 @@ sched_add(struct thread *td, int flags) break; } #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. */