X-Git-Url: http://git.liburcu.org/?a=blobdiff_plain;f=instrumentation%2Fevents%2Flttng-module%2Fpreemptirq.h;h=36aa36cb73c6b26b1c178e9387d84361a326615f;hb=cf77d12083b5092eca8c6f9899ec0892756845aa;hp=ec4570c19562110115249350a08a7e71ee4e8ac6;hpb=0bcebe87b89a0885c19a86e16a7743b26fc78130;p=lttng-modules.git diff --git a/instrumentation/events/lttng-module/preemptirq.h b/instrumentation/events/lttng-module/preemptirq.h index ec4570c1..36aa36cb 100644 --- a/instrumentation/events/lttng-module/preemptirq.h +++ b/instrumentation/events/lttng-module/preemptirq.h @@ -1,3 +1,4 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ #ifdef CONFIG_PREEMPTIRQ_EVENTS #undef TRACE_SYSTEM @@ -9,8 +10,11 @@ #include #include #include -#include +#include +/* + * The preemptirq probe is built when CONFIG_PREEMPTIRQ_EVENTS is defined. + */ LTTNG_TRACEPOINT_EVENT_CLASS(preemptirq_template, @@ -24,7 +28,19 @@ LTTNG_TRACEPOINT_EVENT_CLASS(preemptirq_template, ) ) -#ifndef CONFIG_PROVE_LOCKING +/* + * Tracing of irq enable / disable events is enabled + * on >= 4.19 when CONFIG_TRACE_IRQFLAGS is defined. + * on previous kernels when CONFIG_PROVE_LOCKING is NOT defined. + */ +#if defined(CONFIG_TRACE_IRQFLAGS) +#define LTTNG_TRACE_IRQ +#elif (LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0) && \ + !defined(CONFIG_PROVE_LOCKING)) +#define LTTNG_TRACE_IRQ +#endif + +#ifdef LTTNG_TRACE_IRQ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template, irq_disable, preemptirq_irq_disable, @@ -42,9 +58,21 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template, irq_enable, TP_ARGS(ip, parent_ip) ) -#endif /* !CONFIG_PROVE_LOCKING */ - -#ifdef CONFIG_DEBUG_PREEMPT +#endif /* LTTNG_TRACE_IRQ */ + +/* + * Tracing of preempt enable / disable events is enabled + * on >= 4.19 when CONFIG_TRACE_PREEMPT_TOGGLE is defined. + * on previous kernels when CONFIG_DEBUG_PREEMPT is defined. + */ +#if defined(CONFIG_TRACE_PREEMPT_TOGGLE) +#define LTTNG_TRACE_PREEMPT +#elif (LINUX_VERSION_CODE < KERNEL_VERSION(4,19,0) && \ + defined(CONFIG_DEBUG_PREEMPT)) +#define LTTNG_TRACE_PREEMPT +#endif + +#ifdef LTTNG_TRACE_PREEMPT LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template, preempt_disable, preemptirq_preempt_disable, @@ -62,11 +90,11 @@ LTTNG_TRACEPOINT_EVENT_INSTANCE_MAP(preemptirq_template, preempt_enable, TP_ARGS(ip, parent_ip) ) -#endif /* CONFIG_DEBUG_PREEMPT */ +#endif /* LTTNG_TRACE_PREEMPT */ #endif /* LTTNG_TRACE_PREEMPTIRQ_H */ /* This part must be outside protection */ -#include +#include #endif /* CONFIG_PREEMPTIRQ_EVENTS */