diff options
author | julian <julian@FreeBSD.org> | 2004-08-11 20:54:48 +0000 |
---|---|---|
committer | julian <julian@FreeBSD.org> | 2004-08-11 20:54:48 +0000 |
commit | 765ec5c83bd7d7bd0a1d56b931ae040a3daebef5 (patch) | |
tree | 1676527bfde26a289e43ef3dd7623cd522440de8 /sys/kern | |
parent | e4f9b5dde9587273c2c66332f4c08fb95f9f53e3 (diff) | |
download | FreeBSD-src-765ec5c83bd7d7bd0a1d56b931ae040a3daebef5.zip FreeBSD-src-765ec5c83bd7d7bd0a1d56b931ae040a3daebef5.tar.gz |
Properly keep track of how many kses are on the system run queue(s).
Diffstat (limited to 'sys/kern')
-rw-r--r-- | sys/kern/sched_4bsd.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/sys/kern/sched_4bsd.c b/sys/kern/sched_4bsd.c index 2f6d0ad..c35e3dc 100644 --- a/sys/kern/sched_4bsd.c +++ b/sys/kern/sched_4bsd.c @@ -718,8 +718,6 @@ sched_add(struct thread *td) #endif if (maybe_preempt(td)) return; - ke->ke_ksegrp->kg_runq_kses++; - ke->ke_state = KES_ONRUNQ; #ifdef SMP if (KSE_CAN_MIGRATE(ke)) { @@ -737,6 +735,8 @@ sched_add(struct thread *td) if ((td->td_proc->p_flag & P_NOLOAD) == 0) sched_tdcnt++; runq_add(ke->ke_runq, ke); + ke->ke_ksegrp->kg_runq_kses++; + ke->ke_state = KES_ONRUNQ; maybe_resched(td); } @@ -792,6 +792,7 @@ sched_choose(void) if (ke != NULL) { runq_remove(rq, ke); ke->ke_state = KES_THREAD; + ke->ke_ksegrp->kg_runq_kses--; KASSERT((ke->ke_thread != NULL), ("sched_choose: No thread on KSE")); |