PERFORCE change 1199016 for review
John Baldwin
jhb at FreeBSD.org
Mon Sep 8 04:50:43 UTC 2014
http://p4web.freebsd.org/@@1199016?ac=10
Change 1199016 by jhb at jhb_ralph on 2014/08/21 20:24:44
Store a timestamp in the kinfo_proc structure. Instead of
storing a full timeval, just store a raw microseconds value as
an int. Note that we don't care about wrapping as the point
of the stamp is to compute a delta between updates.
Affected files ...
.. //depot/projects/smpng/sys/kern/kern_proc.c#135 edit
.. //depot/projects/smpng/sys/sys/user.h#58 edit
Differences ...
==== //depot/projects/smpng/sys/kern/kern_proc.c#135 (text+ko) ====
@@ -790,6 +790,7 @@
struct session *sp;
struct ucred *cred;
struct sigacts *ps;
+ struct timeval uptime;
PROC_LOCK_ASSERT(p, MA_OWNED);
bzero(kp, sizeof(*kp));
@@ -870,6 +871,9 @@
kp->ki_fibnum = p->p_fibnum;
kp->ki_start = p->p_stats->p_start;
timevaladd(&kp->ki_start, &boottime);
+ microuptime(&uptime);
+ /* Wrapping is ok as this is only used to compute deltas. */
+ kp->ki_stamp = uptime.tv_sec * 1000000 + uptime.tv_usec;
PROC_SLOCK(p);
rufetch(p, &kp->ki_rusage);
kp->ki_runtime = cputick2usec(p->p_rux.rux_runtime);
==== //depot/projects/smpng/sys/sys/user.h#58 (text+ko) ====
@@ -84,7 +84,7 @@
* it in two places: function fill_kinfo_proc in sys/kern/kern_proc.c and
* function kvm_proclist in lib/libkvm/kvm_proc.c .
*/
-#define KI_NSPARE_INT 7
+#define KI_NSPARE_INT 6
#define KI_NSPARE_LONG 12
#define KI_NSPARE_PTR 6
@@ -187,6 +187,7 @@
*/
char ki_sparestrings[50]; /* spare string space */
int ki_spareints[KI_NSPARE_INT]; /* spare room for growth */
+ u_int ki_stamp; /* timestamp of record (usec) */
int ki_flag2; /* P2_* flags */
int ki_fibnum; /* Default FIB number */
u_int ki_cr_flags; /* Credential flags */
More information about the p4-projects
mailing list