On 2/14/16, Steven Rostedt <rost...@goodmis.org> wrote:
> 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?

Can you take it as a fix for now. I'll post the follow-up patch then
for rcu and offline cpus
issue.

Thanks!

>
> -- Steve
>
>>  );
>>
>>  DEFINE_EVENT_CONDITION(kmem_free, kmem_cache_free,
>
>

Reply via email to