X-Git-Url: http://git.lttng.org./?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fpower.h;h=02a803cdb8951ddabbb5bea9bf95e7612fb6c34b;hb=2cf0c2ca8759ed6103b5aab149efea34e6986818;hp=05aced7414cc6c01da5d3f4d1401ecf148a42055;hpb=b283666ff19841a28b0448c6a867beb2f809f11a;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/power.h b/instrumentation/events/lttng-module/power.h index 05aced74..02a803cd 100644 --- a/instrumentation/events/lttng-module/power.h +++ b/instrumentation/events/lttng-module/power.h @@ -1,13 +1,15 @@ #undef TRACE_SYSTEM #define TRACE_SYSTEM power -#if !defined(_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ) -#define _TRACE_POWER_H +#if !defined(LTTNG_TRACE_POWER_H) || defined(TRACE_HEADER_MULTI_READ) +#define LTTNG_TRACE_POWER_H +#include "../../../probes/lttng-tracepoint-event.h" #include -#include +#include -DECLARE_EVENT_CLASS(cpu, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,38)) +LTTNG_TRACEPOINT_EVENT_CLASS(power_cpu, TP_PROTO(unsigned int state, unsigned int cpu_id), @@ -19,15 +21,17 @@ DECLARE_EVENT_CLASS(cpu, ), TP_fast_assign( - tp_assign(state, state); - tp_assign(cpu_id, cpu_id); + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) ), TP_printk("state=%lu cpu_id=%lu", (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) ) -DEFINE_EVENT(cpu, cpu_idle, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_idle, + + power_cpu_idle, TP_PROTO(unsigned int state, unsigned int cpu_id), @@ -41,14 +45,18 @@ DEFINE_EVENT(cpu, cpu_idle, #define PWR_EVENT_EXIT -1 #endif -DEFINE_EVENT(cpu, cpu_frequency, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_cpu, cpu_frequency, + + power_cpu_frequency, TP_PROTO(unsigned int frequency, unsigned int cpu_id), TP_ARGS(frequency, cpu_id) ) -TRACE_EVENT(machine_suspend, +LTTNG_TRACEPOINT_EVENT_MAP(machine_suspend, + + power_machine_suspend, TP_PROTO(unsigned int state), @@ -59,71 +67,161 @@ TRACE_EVENT(machine_suspend, ), TP_fast_assign( - tp_assign(state, state); + tp_assign(state, state) ), TP_printk("state=%lu", (unsigned long)__entry->state) ) +#endif + +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,5,0)) +LTTNG_TRACEPOINT_EVENT_CLASS(power_wakeup_source, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state), + + TP_STRUCT__entry( + __string( name, name ) + __field( u64, state ) + ), + + TP_fast_assign( + tp_strcpy(name, name) + tp_assign(state, state) + ), + + TP_printk("%s state=0x%lx", __get_str(name), + (unsigned long)__entry->state) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_activate, + + power_wakeup_source_activate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +) + +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_wakeup_source, wakeup_source_deactivate, + + power_wakeup_source_deactivate, + + TP_PROTO(const char *name, unsigned int state), + + TP_ARGS(name, state) +) +#endif + +#if (LINUX_VERSION_CODE < KERNEL_VERSION(2,6,38)) +#undef CONFIG_EVENT_POWER_TRACING_DEPRECATED +#define CONFIG_EVENT_POWER_TRACING_DEPRECATED +#define _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED +#endif -/* This code will be removed after deprecation time exceeded (2.6.41) */ #ifdef CONFIG_EVENT_POWER_TRACING_DEPRECATED /* * The power events are used for cpuidle & suspend (power_start, power_end) * and for cpufreq (power_frequency) */ -DECLARE_EVENT_CLASS(power, +LTTNG_TRACEPOINT_EVENT_CLASS(power, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), TP_ARGS(type, state, cpu_id), +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state), +#endif TP_STRUCT__entry( __field( u64, type ) __field( u64, state ) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) __field( u64, cpu_id ) +#endif ), TP_fast_assign( - tp_assign(type, type); - tp_assign(state, state); - tp_assign(cpu_id, cpu_id); + tp_assign(type, type) + tp_assign(state, state) +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(cpu_id, cpu_id) +#endif ), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) TP_printk("type=%lu state=%lu cpu_id=%lu", (unsigned long)__entry->type, (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) +#else + TP_printk("type=%lu state=%lu", (unsigned long)__entry->type, + (unsigned long)__entry->state) +#endif ) -DEFINE_EVENT(power, power_start, +LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_start, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), TP_ARGS(type, state, cpu_id) +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state) +#endif ) -DEFINE_EVENT(power, power_frequency, +LTTNG_TRACEPOINT_EVENT_INSTANCE(power, power_frequency, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) TP_PROTO(unsigned int type, unsigned int state, unsigned int cpu_id), TP_ARGS(type, state, cpu_id) +#else + TP_PROTO(unsigned int type, unsigned int state), + + TP_ARGS(type, state) +#endif ) -TRACE_EVENT(power_end, +LTTNG_TRACEPOINT_EVENT(power_end, +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) TP_PROTO(unsigned int cpu_id), TP_ARGS(cpu_id), +#else + TP_PROTO(int dummy), + + TP_ARGS(dummy), +#endif TP_STRUCT__entry( +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) __field( u64, cpu_id ) +#else + __field( u64, dummy ) +#endif ), TP_fast_assign( - tp_assign(cpu_id, cpu_id); +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) + tp_assign(cpu_id, cpu_id) +#else + tp_assign(dummy, 0xffff) +#endif ), +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,36)) TP_printk("cpu_id=%lu", (unsigned long)__entry->cpu_id) - +#else + TP_printk("dummy=%lu", (unsigned long)__entry->dummy) +#endif ) /* Deprecated dummy functions must be protected against multi-declartion */ @@ -151,16 +249,21 @@ enum { events get removed */ static inline void trace_power_start(u64 type, u64 state, u64 cpuid) {}; static inline void trace_power_end(u64 cpuid) {}; +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(3,4,0)) +static inline void trace_power_start_rcuidle(u64 type, u64 state, u64 cpuid) {}; +static inline void trace_power_end_rcuidle(u64 cpuid) {}; +#endif static inline void trace_power_frequency(u64 type, u64 state, u64 cpuid) {}; #endif /* _PWR_EVENT_AVOID_DOUBLE_DEFINING_DEPRECATED */ #endif /* CONFIG_EVENT_POWER_TRACING_DEPRECATED */ +#if (LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,37)) /* * The clock events are used for clock enable/disable and for * clock rate change */ -DECLARE_EVENT_CLASS(clock, +LTTNG_TRACEPOINT_EVENT_CLASS(power_clock, TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), @@ -173,30 +276,36 @@ DECLARE_EVENT_CLASS(clock, ), TP_fast_assign( - tp_strcpy(name, name); - tp_assign(state, state); - tp_assign(cpu_id, cpu_id); + tp_strcpy(name, name) + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) ), TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) ) -DEFINE_EVENT(clock, clock_enable, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_enable, + + power_clock_enable, TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), TP_ARGS(name, state, cpu_id) ) -DEFINE_EVENT(clock, clock_disable, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_disable, + + power_clock_disable, TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), TP_ARGS(name, state, cpu_id) ) -DEFINE_EVENT(clock, clock_set_rate, +LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(power_clock, clock_set_rate, + + power_clock_set_rate, TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), @@ -206,7 +315,7 @@ DEFINE_EVENT(clock, clock_set_rate, /* * The power domain events are used for power domains transitions */ -DECLARE_EVENT_CLASS(power_domain, +LTTNG_TRACEPOINT_EVENT_CLASS(power_domain, TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), @@ -219,22 +328,24 @@ DECLARE_EVENT_CLASS(power_domain, ), TP_fast_assign( - tp_strcpy(name, name); - tp_assign(state, state); - tp_assign(cpu_id, cpu_id); + tp_strcpy(name, name) + tp_assign(state, state) + tp_assign(cpu_id, cpu_id) ), TP_printk("%s state=%lu cpu_id=%lu", __get_str(name), (unsigned long)__entry->state, (unsigned long)__entry->cpu_id) ) -DEFINE_EVENT(power_domain, power_domain_target, +LTTNG_TRACEPOINT_EVENT_INSTANCE(power_domain, power_domain_target, TP_PROTO(const char *name, unsigned int state, unsigned int cpu_id), TP_ARGS(name, state, cpu_id) ) -#endif /* _TRACE_POWER_H */ +#endif + +#endif /* LTTNG_TRACE_POWER_H */ /* This part must be outside protection */ #include "../../../probes/define_trace.h"