Re: [PATCH] tracing: Add comments explaining cpu online filter for trace events

From: Steven Rostedt
Date: Wed May 13 2015 - 12:21:54 EST


On Wed, 13 May 2015 21:37:43 +0530
"Shreyas B. Prabhu" <shreyas@xxxxxxxxxxxxxxxxxx> wrote:

> trace_mm_page_pcpu_drain, trace_kmem_cache_free, trace_mm_page_free
> and trace_tlb_flush can be potentially called from an offlined cpu.
> Since trace points use RCU and RCU should not be used from offlined
> cpus, we have checks to filter out such calls. Add comments to explain
> this.
>
> Signed-off-by: Shreyas B. Prabhu <shreyas@xxxxxxxxxxxxxxxxxx>
> ---
> This applies on top of patches posted here:
> https://lkml.org/lkml/2015/5/8/527
>
> include/trace/events/kmem.h | 15 +++++++++++++++
> include/trace/events/tlb.h | 5 +++++
> 2 files changed, 20 insertions(+)
>
> diff --git a/include/trace/events/kmem.h b/include/trace/events/kmem.h
> index 6cd975f..9883f2f 100644
> --- a/include/trace/events/kmem.h
> +++ b/include/trace/events/kmem.h
> @@ -146,6 +146,11 @@ DEFINE_EVENT_CONDITION(kmem_free, kmem_cache_free,
>
> TP_ARGS(call_site, ptr),
>
> + /*
> + * This trace can be potentially called from an offlined cpu.
> + * Since trace points use RCU and RCU should not be used from
> + * offline cpus, filter such calls out.
> + */
> TP_CONDITION(cpu_online(smp_processor_id()))
> );
>

Thanks for the comments, but can't these still be called with
preemption enabled. What happens when CONFIG_DEBUG_PREEMPT is set and
you enable these tracepoints. Wont it trigger a warning about
smp_processor_id() being used in preemptible code?

-- Steve
--
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/