]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
dtrace: add dtrace_gethrtime() and fix walltimestamp.
authorKris Van Hees <kris.van.hees@oracle.com>
Thu, 8 Sep 2011 15:13:26 +0000 (11:13 -0400)
committerNick Alcock <nick.alcock@oracle.com>
Mon, 29 Jun 2015 21:39:55 +0000 (22:39 +0100)
The walltimestamp is required to be the time in nanoseconds since the epoch,
not the time in nanoseconds since boot or since dtrace invocation.

So we no longer need dtrace_mstate.dtms_walltimestamp, nor the flag used to
track its updating: but we *do* need a new way to get the time that is safe
for non-GPL use.

This fixes test/act/time.d (which is the only test that checks if walltimestamp
not only exists but returns the right value).

Orabug: 18376038

Signed-off-by: Kris Van Hees <kris.van.hees@oracle.com>
Signed-off-by: Nick Alcock <nick.alcock@oracle.com>
Acked-by: Jerry Snitselaar <jerry.snitselaar@oracle.com>
kernel/dtrace/dtrace_os.c

index fdb36a9deb1c875c709ef113de57b4eab7dbb8fb..53184b983c35ffab261e3404d00056236882f0b9 100644 (file)
 #include "cyclic.h"
 #include "systrace.h"
 
+/*
+ * Return a high resolution timer value that is guaranteed to always increase.
+ */
+ktime_t dtrace_gethrtime(void)
+{
+       struct timespec ts;
+
+       getrawmonotonic(&ts);
+       return timespec_to_ktime(ts);
+}
+EXPORT_SYMBOL(dtrace_gethrtime);
+
+/*
+ * Return the current wall-clock time, in nanoseconds since the epoch.
+ */
+ktime_t dtrace_getwalltime(void)
+{
+       struct timespec ts;
+
+       getnstimeofday(&ts);
+       return timespec_to_ktime(ts);
+}
+EXPORT_SYMBOL(dtrace_getwalltime);
+
 /*
  * Very basic implementation of cyclics, merely enough to support dtrace.
  */