On Sat, 13 Feb 2016 21:22:52 +0300
Denis Kirjanov <k...@linux-powerpc.org> wrote:

> -DEFINE_EVENT(kmem_free, kfree,
> +DEFINE_EVENT_CONDITION(kmem_free, kfree,
>  
>       TP_PROTO(unsigned long call_site, const void *ptr),
>  
> -     TP_ARGS(call_site, ptr)
> +     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.
> +      * While this trace can be called from a preemptable section,
> +      * it has no impact on the condition since tasks can migrate
> +      * only from online cpus to other online cpus. Thus its safe
> +      * to use raw_smp_processor_id.
> +      */
> +     TP_CONDITION(cpu_online(raw_smp_processor_id()))

This is starting to become a common occurrence. Perhaps it is best to
just hardcode this into the tracepoint code itself?

-- Steve

>  );
>  
>  DEFINE_EVENT_CONDITION(kmem_free, kmem_cache_free,

Reply via email to