From e0c2153011e9f04c4a6984a2df6dd265c274b5df Mon Sep 17 00:00:00 2001 From: davidxu Date: Wed, 19 Feb 2003 13:40:24 +0000 Subject: [PATCH] Count non-threaded group. --- sys/kern/kern_kse.c | 15 ++++++++++----- sys/kern/kern_thread.c | 15 ++++++++++----- 2 files changed, 20 insertions(+), 10 deletions(-) diff --git a/sys/kern/kern_kse.c b/sys/kern/kern_kse.c index c7b88432c175..0146cc4a1a5b 100644 --- a/sys/kern/kern_kse.c +++ b/sys/kern/kern_kse.c @@ -1692,14 +1692,18 @@ thread_userret(struct thread *td, struct trapframe *frame) break; upcalls = 0; mtx_lock_spin(&sched_lock); - FOREACH_KSEGRP_IN_PROC(p, kg2) - upcalls += kg2->kg_numupcalls; + FOREACH_KSEGRP_IN_PROC(p, kg2) { + if (kg2->kg_numupcalls == 0) + upcalls++; + else + upcalls += kg2->kg_numupcalls; + } mtx_unlock_spin(&sched_lock); if (upcalls >= max_threads_per_proc) break; p->p_maxthrwaits++; - msleep(&p->p_numthreads, &p->p_mtx, PPAUSE|PCATCH, "maxthreads", - NULL); + msleep(&p->p_numthreads, &p->p_mtx, PPAUSE|PCATCH, + "maxthreads", NULL); p->p_maxthrwaits--; } PROC_UNLOCK(p); @@ -1707,7 +1711,8 @@ thread_userret(struct thread *td, struct trapframe *frame) if (error) { /* - * Things are going to be so screwed we should just kill the process. + * Things are going to be so screwed we should just kill + * the process. * how do we do that? */ PROC_LOCK(td->td_proc); diff --git a/sys/kern/kern_thread.c b/sys/kern/kern_thread.c index c7b88432c175..0146cc4a1a5b 100644 --- a/sys/kern/kern_thread.c +++ b/sys/kern/kern_thread.c @@ -1692,14 +1692,18 @@ thread_userret(struct thread *td, struct trapframe *frame) break; upcalls = 0; mtx_lock_spin(&sched_lock); - FOREACH_KSEGRP_IN_PROC(p, kg2) - upcalls += kg2->kg_numupcalls; + FOREACH_KSEGRP_IN_PROC(p, kg2) { + if (kg2->kg_numupcalls == 0) + upcalls++; + else + upcalls += kg2->kg_numupcalls; + } mtx_unlock_spin(&sched_lock); if (upcalls >= max_threads_per_proc) break; p->p_maxthrwaits++; - msleep(&p->p_numthreads, &p->p_mtx, PPAUSE|PCATCH, "maxthreads", - NULL); + msleep(&p->p_numthreads, &p->p_mtx, PPAUSE|PCATCH, + "maxthreads", NULL); p->p_maxthrwaits--; } PROC_UNLOCK(p); @@ -1707,7 +1711,8 @@ thread_userret(struct thread *td, struct trapframe *frame) if (error) { /* - * Things are going to be so screwed we should just kill the process. + * Things are going to be so screwed we should just kill + * the process. * how do we do that? */ PROC_LOCK(td->td_proc);