summaryrefslogtreecommitdiffstats
path: root/sys
diff options
context:
space:
mode:
authordavidxu <davidxu@FreeBSD.org>2006-06-13 23:01:50 +0000
committerdavidxu <davidxu@FreeBSD.org>2006-06-13 23:01:50 +0000
commit8471318e5c314cc89f8fc244251f5417e0576595 (patch)
treeefa59f011cb584f9838d3c3b78b2922af568cfc0 /sys
parent9af5dd68e4cafc61cd39c93a9cbb404beec42308 (diff)
downloadFreeBSD-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')
-rw-r--r--sys/kern/sched_core.c4
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);
}
OpenPOWER on IntegriCloud