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?
Yeah, I was thinking about it the same way and so we can make it generic > > -- Steve > >> ); >> >> DEFINE_EVENT_CONDITION(kmem_free, kmem_cache_free, > >