summaryrefslogtreecommitdiffstats
path: root/sys/kern/kern_switch.c
diff options
context:
space:
mode:
authorjhb <jhb@FreeBSD.org>2001-03-09 03:59:50 +0000
committerjhb <jhb@FreeBSD.org>2001-03-09 03:59:50 +0000
commit3c0c5bd7cbbc234a43189123df7446e16d27be8f (patch)
treeda60ffcf9ba66b9c3d26eb30fb1069c6e10629d0 /sys/kern/kern_switch.c
parent12430ff9ce4d9eb82ead521b86efdeaa11b1f945 (diff)
downloadFreeBSD-src-3c0c5bd7cbbc234a43189123df7446e16d27be8f.zip
FreeBSD-src-3c0c5bd7cbbc234a43189123df7446e16d27be8f.tar.gz
Add a new informative KASSERT to ensure that a process is in the SRUN state
before we return it to cpu_switch().
Diffstat (limited to 'sys/kern/kern_switch.c')
-rw-r--r--sys/kern/kern_switch.c3
1 files changed, 3 insertions, 0 deletions
diff --git a/sys/kern/kern_switch.c b/sys/kern/kern_switch.c
index bfe0e7f..0dd8538 100644
--- a/sys/kern/kern_switch.c
+++ b/sys/kern/kern_switch.c
@@ -190,6 +190,9 @@ runq_choose(struct runq *rq)
rqh = &rq->rq_queues[pri];
p = TAILQ_FIRST(rqh);
KASSERT(p != NULL, ("runq_choose: no proc on busy queue"));
+ KASSERT(p->p_stat == SRUN,
+ ("runq_chose: process %d(%s) in state %d", p->p_pid,
+ p->p_comm, p->p_stat));
CTR3(KTR_RUNQ, "runq_choose: pri=%d p=%p rqh=%p", pri, p, rqh);
TAILQ_REMOVE(rqh, p, p_procq);
if (TAILQ_EMPTY(rqh)) {
OpenPOWER on IntegriCloud