Re: [RFC][PATCH] tracing: Warn and notify if tracepoints are not loaded due to module taint

From: Mathieu Desnoyers
Date: Tue Feb 25 2014 - 19:39:10 EST


----- Original Message -----
> From: "Steven Rostedt" <rostedt@xxxxxxxxxxx>
> To: "LKML" <linux-kernel@xxxxxxxxxxxxxxx>
> Cc: "Ingo Molnar" <mingo@xxxxxxxxxx>, "Mathieu Desnoyers" <mathieu.desnoyers@xxxxxxxxxxxx>, "Rusty Russell"
> <rusty@xxxxxxxxxxxxxxx>, "Frederic Weisbecker" <fweisbec@xxxxxxxxx>, "Andrew Morton" <akpm@xxxxxxxxxxxxxxxxxxxx>,
> "Peter Zijlstra" <peterz@xxxxxxxxxxxxx>
> Sent: Tuesday, February 25, 2014 7:15:05 PM
> Subject: [RFC][PATCH] tracing: Warn and notify if tracepoints are not loaded due to module taint
>
> [ Posting this as an RFC, but I plan on pushing it as soon as I finish
> testing it ]
>
> If a module is loaded that is tainted with anything but OOT or CRAP, then
> it will not create the traceoint infrastructure for the module. There should

traceoint -> tracepoint

> be a big warning when this happens instead of exiting silently.
>
> Fixes: 97e1c18e8d17 "tracing: Kernel Tracepoints"
> Cc: stable@xxxxxxxxxxxxxxx
> Cc: Mathieu Desnoyers <mathieu.desnoyers@xxxxxxxxxx>
> Signed-off-by: Steven Rostedt <rostedt@xxxxxxxxxxx>
> ---
> kernel/tracepoint.c | 3 ++-
> 1 file changed, 2 insertions(+), 1 deletion(-)
>
> diff --git a/kernel/tracepoint.c b/kernel/tracepoint.c
> index 29f2654..413bc06 100644
> --- a/kernel/tracepoint.c
> +++ b/kernel/tracepoint.c
> @@ -641,7 +641,8 @@ static int tracepoint_module_coming(struct module *mod)
> * module headers (for forced load), to make sure we don't cause a crash.
> * Staging and out-of-tree GPL modules are fine.
> */
> - if (mod->taints & ~((1 << TAINT_OOT_MODULE) | (1 << TAINT_CRAP)))
> + if (WARN_ONCE(mod->taints & ~((1 << TAINT_OOT_MODULE) | (1 << TAINT_CRAP)),
> + "Module is tainted, disabling tracepoints"))

Perhaps ever clearer with:

"Module \"%s\" is tainted, disabling tracepoints", mod->name

?

Other than that, looks good to me!

Thanks,

Mathieu

> return 0;
> mutex_lock(&tracepoints_mutex);
> tp_mod = kmalloc(sizeof(struct tp_module), GFP_KERNEL);
> --
> 1.8.5.3
>
>

--
Mathieu Desnoyers
EfficiOS Inc.
http://www.efficios.com
--
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/