Date: Fri, 12 Jul 2013 18:50:01 GMT From: Konstantin Belousov <kostikbel@gmail.com> To: freebsd-threads@FreeBSD.org Subject: Re: threads/180496: clock_gettime() does not return CPU-time for zombie processes Message-ID: <201307121850.r6CIo1Hw072153@freefall.freebsd.org>
index | next in thread | raw e-mail
The following reply was made to PR threads/180496; it has been noted by GNATS.
From: Konstantin Belousov <kostikbel@gmail.com>
To: Petr Salinger <Petr.Salinger@seznam.cz>
Cc: freebsd-gnats-submit@FreeBSD.org
Subject: Re: threads/180496: clock_gettime() does not return CPU-time for
zombie processes
Date: Fri, 12 Jul 2013 21:47:43 +0300
Please try this. The clock_gettime() call on zombie clock worked
for me.
Note that the check for clock_getres() on the reapped process clock
failed since we do not check for pid validity, all processes has
the same clock. I do not see much sense in adding the useless check.
diff --git a/sys/kern/kern_time.c b/sys/kern/kern_time.c
index b68c949..9e0cc06 100644
--- a/sys/kern/kern_time.c
+++ b/sys/kern/kern_time.c
@@ -297,14 +297,9 @@ get_cputime(struct thread *td, clockid_t clock_id, struct timespec *ats)
PROC_UNLOCK(td2->td_proc);
} else {
pid = clock_id & CPUCLOCK_ID_MASK;
- p2 = pfind(pid);
- if (p2 == NULL)
- return (EINVAL);
- error = p_cansee(td, p2);
- if (error) {
- PROC_UNLOCK(p2);
+ error = pget(pid, PGET_CANSEE, &p2);
+ if (error != 0)
return (EINVAL);
- }
get_process_cputime(p2, ats);
PROC_UNLOCK(p2);
}
home |
help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201307121850.r6CIo1Hw072153>
