diff options
author | davidxu <davidxu@FreeBSD.org> | 2006-06-13 23:01:50 +0000 |
---|---|---|
committer | davidxu <davidxu@FreeBSD.org> | 2006-06-13 23:01:50 +0000 |
commit | 8471318e5c314cc89f8fc244251f5417e0576595 (patch) | |
tree | efa59f011cb584f9838d3c3b78b2922af568cfc0 /sys/kern | |
parent | 9af5dd68e4cafc61cd39c93a9cbb404beec42308 (diff) | |
download | FreeBSD-src-8471318e5c314cc89f8fc244251f5417e0576595.zip FreeBSD-src-8471318e5c314cc89f8fc244251f5417e0576595.tar.gz |
Pass boolean value to __predict_false. Try to keep KSE slot count
correct for migrating thread, the count is a bit mess.
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/sched_core.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/sched_core.c b/sys/kern/sched_core.c index e74194e..98d9da0 100644 --- a/sys/kern/sched_core.c +++ b/sys/kern/sched_core.c @@ -1566,7 +1566,7 @@ sched_switch(struct thread *td, struct thread *newtd, int flags) */ if (__predict_false(td == PCPU_GET(idlethread))) { TD_SET_CAN_RUN(td); - } else if (__predict_false(ke->ke_flags & KEF_MIGRATING)) { + } else if (__predict_false((ke->ke_flags & KEF_MIGRATING) != 0)) { SLOT_RELEASE(td->td_ksegrp); } else { /* We are ending our run so make our slot available again */ @@ -2192,7 +2192,6 @@ sched_rem(struct thread *td) mtx_assert(&sched_lock, MA_OWNED); ke = td->td_kse; - SLOT_RELEASE(td->td_ksegrp); ke->ke_flags &= ~KEF_PREEMPTED; KASSERT((ke->ke_state == KES_ONRUNQ), ("sched_rem: KSE not on run queue")); @@ -2209,6 +2208,7 @@ sched_rem(struct thread *td) { KASSERT((ke->ke_state == KES_ONRUNQ), ("sched_rem: KSE not on run queue")); + SLOT_RELEASE(td->td_ksegrp); kseq_runq_rem(kseq, ke); kseq_load_rem(kseq, ke); } |