Date: Wed, 25 Dec 2013 17:11:50 +0000 (UTC) From: Sergey Kandaurov <pluknet@FreeBSD.org> To: src-committers@freebsd.org, svn-src-all@freebsd.org, svn-src-head@freebsd.org Subject: svn commit: r259878 - head/lib/libdevstat Message-ID: <201312251711.rBPHBoZE021404@svn.freebsd.org>
next in thread | raw e-mail | index | archive | help
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
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?201312251711.rBPHBoZE021404>