diff options
author | Mathieu Desnoyers <mathieu.desnoyers@efficios.com> | 2011-03-16 19:05:22 -0400 |
---|---|---|
committer | Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca> | 2011-03-16 19:05:22 -0400 |
commit | 54f66d6ca47439a76e9a29068d65dcfa3ef0e2b4 (patch) | |
tree | c97ef0ceba89f9b169b62bd3e71944028d04bc2a | |
parent | 1c1f96e9cbe6146c8bd1cefbdf65b8efe099d014 (diff) |
trace-clock-rename-generic-identifier
Trace clock: rename generic identifier
> I am having the following trouble compiling kernel linux-2.6.30-rc5 when
> patched with patch-2.6.30-rc5-lttng-0.136 and wondered if this is a known
> problem...
>
> ...
> LD kernel/time/built-in.o
> CC kernel/trace/ring_buffer.o
> CC kernel/trace/trace.o
> CC kernel/trace/trace_clock.o
> CC kernel/trace/trace_output.o
> CC kernel/trace/trace_stat.o
> CC kernel/trace/trace_printk.o
> CC kernel/trace/trace_nop.o
> CC kernel/trace/trace-clock-32-to-64.o
> CC kernel/trace/trace-clock.o
> LD kernel/trace/built-in.o
> kernel/trace/trace-clock.o:(.bss+0x0): multiple definition of `trace_clock'
> kernel/trace/trace_clock.o:trace_clock.c:(.text+0x0): first defined here
> arm-linux-ld: Warning: size of symbol `trace_clock' changed from 8 in
> kernel/trace/trace_clock.o to 4 in kernel/trace/trace-clock.o
> arm-linux-ld: Warning: type of symbol `trace_clock' changed from 2 to 1 in
> kernel/trace/trace-clock.o
> make[2]: *** [kernel/trace/built-in.o] Error 1
> make[1]: *** [kernel/trace] Error 2
> make: *** [kernel] Error 2
>
> I *think* that this is because the symbol trace_clock appears as both a
> variable and a function.
>
> FILE: include/asm-generic/trace-clock.h:
>
> extern atomic_long_t trace_clock;
>
> and
>
> FILE: kernel/trace/trace_clock.c:
>
> u64 notrace trace_clock(void)
> {
> return cpu_clock(raw_smp_processor_id());
> }
>
Hrm, yes. This is caused by ftrace. But given they are in mainline and
LTTng isn't, the LTTng trace clock identifier will have to move.
Signed-off-by: Mathieu Desnoyers <mathieu.desnoyers@polymtl.ca>
-rw-r--r-- | include/asm-generic/trace-clock.h | 6 | ||||
-rw-r--r-- | kernel/trace/trace-clock.c | 8 |
2 files changed, 7 insertions, 7 deletions
diff --git a/include/asm-generic/trace-clock.h b/include/asm-generic/trace-clock.h index 8111abad5a7..138ac9b7c54 100644 --- a/include/asm-generic/trace-clock.h +++ b/include/asm-generic/trace-clock.h @@ -26,11 +26,11 @@ /* Expected maximum interrupt latency in ms : 15ms, *2 for security */ #define TC_EXPECTED_INTERRUPT_LATENCY 30 -extern atomic_long_t trace_clock; +extern atomic_long_t trace_clock_var; static inline u32 trace_clock_read32(void) { - return (u32)atomic_long_add_return(1, &trace_clock); + return (u32)atomic_long_add_return(1, &trace_clock_var); } #ifdef CONFIG_HAVE_TRACE_CLOCK_32_TO_64 @@ -53,7 +53,7 @@ static inline void put_synthetic_tsc(void) static inline u64 trace_clock_read64(void) { - return atomic_long_add_return(1, &trace_clock); + return atomic_long_add_return(1, &trace_clock_var); } #endif diff --git a/kernel/trace/trace-clock.c b/kernel/trace/trace-clock.c index 361a22a370e..3ed1667aacb 100644 --- a/kernel/trace/trace-clock.c +++ b/kernel/trace/trace-clock.c @@ -25,8 +25,8 @@ static struct timer_list trace_clock_timer; * bits 0..12 : counter, atomically incremented * bits 13..{32,64} : time counter, incremented each jiffy. */ -atomic_long_t trace_clock; -EXPORT_SYMBOL(trace_clock); +atomic_long_t trace_clock_var; +EXPORT_SYMBOL(trace_clock_var); static void trace_clock_update(void) { @@ -41,10 +41,10 @@ static void trace_clock_update(void) if (unlikely(!ticks)) return; do { - old_clock = atomic_long_read(&trace_clock); + old_clock = atomic_long_read(&trace_clock_var); new_clock = (old_clock + (ticks << TRACE_CLOCK_SHIFT)) & (~((1 << TRACE_CLOCK_SHIFT) - 1)); - } while (atomic_long_cmpxchg(&trace_clock, old_clock, new_clock) + } while (atomic_long_cmpxchg(&trace_clock_var, old_clock, new_clock) != old_clock); } |