diff options
-rw-r--r-- | arch/x86/include/asm/trace-clock.h | 12 | ||||
-rw-r--r-- | arch/x86/kernel/trace-clock.c | 2 |
2 files changed, 4 insertions, 10 deletions
diff --git a/arch/x86/include/asm/trace-clock.h b/arch/x86/include/asm/trace-clock.h index 01bc2f5221c..5f6a36684c9 100644 --- a/arch/x86/include/asm/trace-clock.h +++ b/arch/x86/include/asm/trace-clock.h @@ -30,11 +30,9 @@ static inline u32 trace_clock_read32(void) { u32 cycles; - if (likely(trace_clock_is_sync())) { - get_cycles_barrier(); + if (likely(trace_clock_is_sync())) cycles = (u32)get_cycles(); /* only need the 32 LSB */ - get_cycles_barrier(); - } else + else cycles = (u32)trace_clock_async_tsc_read(); return cycles; } @@ -43,11 +41,9 @@ static inline u64 trace_clock_read64(void) { u64 cycles; - if (likely(trace_clock_is_sync())) { - get_cycles_barrier(); + if (likely(trace_clock_is_sync())) cycles = get_cycles(); - get_cycles_barrier(); - } else + else cycles = trace_clock_async_tsc_read(); return cycles; } diff --git a/arch/x86/kernel/trace-clock.c b/arch/x86/kernel/trace-clock.c index ec866aa9591..37cf125a940 100644 --- a/arch/x86/kernel/trace-clock.c +++ b/arch/x86/kernel/trace-clock.c @@ -69,9 +69,7 @@ notrace cycles_t trace_clock_async_tsc_read(void) cycles_t new_tsc, last_tsc; WARN_ON(!async_tsc_refcount || !async_tsc_enabled); - rdtsc_barrier(); new_tsc = get_cycles(); - rdtsc_barrier(); last_tsc = read_last_tsc(); do { if (new_tsc < last_tsc) |