]> www.infradead.org Git - users/jedix/linux-maple.git/commitdiff
DTrace walltime lock-free implementation
authorTomas Jedlicka <tomas.jedlicka@oracle.com>
Thu, 9 Mar 2017 22:44:51 +0000 (17:44 -0500)
committerKris Van Hees <kris.van.hees@oracle.com>
Sun, 2 Apr 2017 13:20:27 +0000 (09:20 -0400)
The DIF_VAR_WALLTIMESTAMP now uses new dtrace_get_walltimestamp().

Orabug: 25715256

Signed-off-by: Tomas Jedlicka <tomas.jedlicka@oracle.com>
Reviewed-by: Nick Alcock <nick.alcock@oracle.com>
dtrace/dtrace_dif.c

index 96598797f996689797bf612e1004e2745846f19b..bfa3e124747d299f94e999c64c0a8ba993208028 100644 (file)
@@ -21,8 +21,7 @@
  *
  * CDDL HEADER END
  *
- * Copyright 2010-2017 Oracle, Inc.  All rights reserved.
- * Use is subject to license terms.
+ * Copyright (c) 2010, 2017, Oracle and/or its affiliates. All rights reserved.
  */
 
 #include <linux/dtrace_cpu.h>
@@ -2080,7 +2079,6 @@ static uint64_t dtrace_dif_variable(dtrace_mstate_t *mstate,
                return (uint64_t)(uintptr_t)current;
 
        case DIF_VAR_TIMESTAMP:
-       case DIF_VAR_WALLTIMESTAMP:
                if (!(mstate->dtms_present & DTRACE_MSTATE_TIMESTAMP)) {
                        mstate->dtms_timestamp = current->dtrace_start;
                        mstate->dtms_present |= DTRACE_MSTATE_TIMESTAMP;
@@ -2088,6 +2086,9 @@ static uint64_t dtrace_dif_variable(dtrace_mstate_t *mstate,
 
                return ktime_to_ns(mstate->dtms_timestamp);
 
+       case DIF_VAR_WALLTIMESTAMP:
+               return ktime_to_ns(dtrace_get_walltime());
+
        case DIF_VAR_VTIMESTAMP:
                ASSERT(dtrace_vtime_references != 0);