summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjeff <jeff@FreeBSD.org>2005-02-04 17:22:46 +0000
committerjeff <jeff@FreeBSD.org>2005-02-04 17:22:46 +0000
commitef8ea3a09d70284e882870a744ef783d858b6f8b (patch)
treec4c56c2975f6e252d960999068b63bdc9a53a82e
parent43632a424ac22e5f43ac97b685dc24cdf1dc3af4 (diff)
downloadFreeBSD-src-ef8ea3a09d70284e882870a744ef783d858b6f8b.zip
FreeBSD-src-ef8ea3a09d70284e882870a744ef783d858b6f8b.tar.gz
- Add ke_runq == NULL to the conditions which will cause us to abort
adjusting timeshare loads in sched_class(). This is only important if the thread has never run, otherwise the state checks should work as expected.
-rw-r--r--sys/kern/sched_ule.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/sys/kern/sched_ule.c b/sys/kern/sched_ule.c
index 696d700..6c14913 100644
--- a/sys/kern/sched_ule.c
+++ b/sys/kern/sched_ule.c
@@ -1534,8 +1534,8 @@ sched_class(struct ksegrp *kg, int class)
oclass = PRI_BASE(kg->kg_pri_class);
FOREACH_THREAD_IN_GROUP(kg, td) {
ke = td->td_kse;
- if (ke->ke_state != KES_ONRUNQ &&
- ke->ke_state != KES_THREAD)
+ if ((ke->ke_state != KES_ONRUNQ &&
+ ke->ke_state != KES_THREAD) || ke->ke_runq == NULL)
continue;
kseq = KSEQ_CPU(ke->ke_cpu);
OpenPOWER on IntegriCloud