Author: pluknet
Date: Wed Dec 25 17:11:49 2013
New Revision: 259878
URL: http://svnweb.freebsd.org/changeset/base/259878

Log:
  For vmcore, calculate time relative to device creation upon time_uptime.
  Previously it used a clock from live kernel.
  
  MFC after:    2 weeks

Modified:
  head/lib/libdevstat/devstat.c

Modified: head/lib/libdevstat/devstat.c
==============================================================================
--- head/lib/libdevstat/devstat.c       Wed Dec 25 16:58:42 2013        
(r259877)
+++ head/lib/libdevstat/devstat.c       Wed Dec 25 17:11:49 2013        
(r259878)
@@ -150,7 +150,9 @@ static const char *namelist[] = {
        "_devstat_version",
 #define X_DEVICE_STATQ 3
        "_device_statq",
-#define X_END          4
+#define X_TIME_UPTIME  4
+       "_time_uptime",
+#define X_END          5
 };
 
 /*
@@ -349,10 +351,10 @@ devstat_getdevs(kvm_t *kd, struct statin
        oldnumdevs = dinfo->numdevs;
        oldgeneration = dinfo->generation;
 
-       clock_gettime(CLOCK_MONOTONIC, &ts);
-       stats->snap_time = ts.tv_sec + ts.tv_nsec * 1e-9;
-
        if (kd == NULL) {
+               clock_gettime(CLOCK_MONOTONIC, &ts);
+               stats->snap_time = ts.tv_sec + ts.tv_nsec * 1e-9;
+
                /* If this is our first time through, mem_ptr will be null. */
                if (dinfo->mem_ptr == NULL) {
                        /*
@@ -433,6 +435,11 @@ devstat_getdevs(kvm_t *kd, struct statin
                } 
 
        } else {
+               if (KREADNL(kd, X_TIME_UPTIME, ts.tv_sec) == -1)
+                       return(-1);
+               else
+                       stats->snap_time = ts.tv_sec;
+
                /* 
                 * This is of course non-atomic, but since we are working
                 * on a core dump, the generation is unlikely to change
_______________________________________________
svn-src-all@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to