Re: [PATCH RFC v4 1/3] tracing/irqsoff: Prepare to add preempt and irq trace events

From: Steven Rostedt
Date: Sun Sep 10 2017 - 05:17:01 EST


On Wed, 6 Sep 2017 17:17:50 -0700
Joel Fernandes <joelaf@xxxxxxxxxx> wrote:


> +#else /* IRQSOFF_TRACER || PREEMPTOFF_TRACER */
> +
> +#define start_critical_timings_tracer() do { } while (0)
> +#define stop_critical_timings_tracer() do { } while (0)
> +
> +#endif
> +
> +#ifndef CONFIG_IRQSOFF_TRACER
> +#define tracer_hardirqs_on() do { } while (0)
> +#define tracer_hardirqs_off() do { } while (0)
> +#define tracer_hardirqs_on_caller(x) do { } while (0)
> +#define tracer_hardirqs_off_caller(x) do { } while (0)
> +#endif
> +
> +#ifndef CONFIG_PREEMPT_TRACER
> +#define tracer_preempt_on(x, y) do { } while (0)
> +#define tracer_preempt_off(x, y) do { } while (0)
> +#endif

Is there a reason the above is #define and not static inline? The
preferred method is static inline as that allows the compiler to check
types. #define is used if one of the parameters has a struct or
something that is not defined.

-- Steve