Re: [PATCH 0/3][RFC] tracing/rcu: Add _rcuidle() tracepoint tohandle rcu_idle_exit() tracepoints

From: Witold Baryluk
Date: Tue Feb 14 2012 - 13:09:54 EST


Hi,

I have some problem with cpuidle tracing:

https://bugzilla.kernel.org/show_bug.cgi?id=42742

so I applied 3 patches from https://lkml.org/lkml/headers/2012/2/7/231

> Steven Rostedt (3):
> tracing/rcu: Add trace_##name##__rcuidle() static tracepoint for inside rcu_idle_exit() sections
> x86/tracing: Denote the power and cpuidle tracepoints as _rcuidle()
> cpuidle/tracing: Denote the tracepoints as being in rcu_idle_exit() section

All 3 patches applied cleanly but for unknown reasons to me compilation fails:

CC arch/x86/kernel/process.o
arch/x86/kernel/process.c: In function âdefault_idleâ:
arch/x86/kernel/process.c:380:3: error: implicit declaration of function âtrace_power_start_rcuidleâ [-Werror=implicit-function-declaration]
arch/x86/kernel/process.c:394:3: error: implicit declaration of function âtrace_power_end_rcuidleâ [-Werror=implicit-function-declaration]
cc1: some warnings being treated as errors

I think this is because

static inline void trace_##name##_rcuidle(proto) \

should have only 1 argument passed.

but more are passed

trace_cpu_idle_rcuidle(PWR_EVENT_EXIT, smp_processor_id());
trace_power_start_rcuidle(POWER_CSTATE, next_state, dev->cpu);

However this explanation fails because

trace_power_end_rcuidle(smp_processor_id());

have single argument, and because without patches
arch/x86/kernel/process.c compiles without a problem. and there is
nothing in my 'git diff' which should justify such change.

It is mainline Linus kernel with just this 3 patches added.

Any idea?

gcc version 4.6.2 (Debian 4.6.2-14)
Debian GNU/Linux, wheezy i386. (IA-32)
Intel Pentium M processor.

--
Witold Baryluk
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/