summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorpjd <pjd@FreeBSD.org>2004-07-29 20:27:59 +0000
committerpjd <pjd@FreeBSD.org>2004-07-29 20:27:59 +0000
commit7e5db42c7abc6797cb566c6f9dfc3f529e5dbb5c (patch)
tree85e361650295da657bafd41bfd3274b7da079092
parent4f3c9ce7615c66d3c214479169fbbff7dfbdd374 (diff)
downloadFreeBSD-src-7e5db42c7abc6797cb566c6f9dfc3f529e5dbb5c.zip
FreeBSD-src-7e5db42c7abc6797cb566c6f9dfc3f529e5dbb5c.tar.gz
Fill some informations about zombie processes as well.
Before this change every zombie process were reported as an owner of PID 0 in ps(1) output. Reviewed by: julian
-rw-r--r--sys/kern/kern_proc.c13
1 files changed, 6 insertions, 7 deletions
diff --git a/sys/kern/kern_proc.c b/sys/kern/kern_proc.c
index 5357d65..a83b9e1 100644
--- a/sys/kern/kern_proc.c
+++ b/sys/kern/kern_proc.c
@@ -702,6 +702,12 @@ fill_kinfo_thread(struct thread *td, struct kinfo_proc *kp)
kp->ki_childtime = kp->ki_childstime;
timevaladd(&kp->ki_childtime, &kp->ki_childutime);
}
+ kp->ki_sflag = p->p_sflag;
+ kp->ki_swtime = p->p_swtime;
+ kp->ki_pid = p->p_pid;
+ kp->ki_nice = p->p_nice;
+ bintime2timeval(&p->p_runtime, &tv);
+ kp->ki_runtime = tv.tv_sec * (u_int64_t)1000000 + tv.tv_usec;
if (p->p_state != PRS_ZOMBIE) {
#if 0
if (td == NULL) {
@@ -740,15 +746,8 @@ fill_kinfo_thread(struct thread *td, struct kinfo_proc *kp)
kp->ki_stat = SIDL;
}
- kp->ki_sflag = p->p_sflag;
- kp->ki_swtime = p->p_swtime;
- kp->ki_pid = p->p_pid;
- kp->ki_nice = p->p_nice;
kg = td->td_ksegrp;
ke = td->td_kse;
- bintime2timeval(&p->p_runtime, &tv);
- kp->ki_runtime =
- tv.tv_sec * (u_int64_t)1000000 + tv.tv_usec;
/* things in the KSE GROUP */
kp->ki_estcpu = kg->kg_estcpu;
OpenPOWER on IntegriCloud