* Metzger, Markus T <markus.t.metzger@xxxxxxxxx> wrote: > >-----Original Message----- > >From: Ingo Molnar [mailto:mingo@xxxxxxx] > >Sent: Wednesday, February 25, 2009 10:58 AM > >To: Metzger, Markus T > > > >* Metzger, Markus T <markus.t.metzger@xxxxxxxxx> wrote: > > > >> > static void trace_bts_prepare(struct trace_iterator *iter) > >> > { > >> >- mutex_lock(&bts_tracer_mutex); > >> >+ spin_lock(&bts_tracer_lock); > >> > > >> > on_each_cpu(trace_bts_cpu, iter->tr, 1); > >> > > >> >- mutex_unlock(&bts_tracer_mutex); > >> >+ spin_unlock(&bts_tracer_lock); > >> > } > >> > >> Whereas start/stop are relatively fast, the above operation is > >> rather expensive. Would it make sense to use > >> schedule_on_each_cpu() instead of on_each_cpu()? > > > >it's perfectly fine to do that on_each_cpu() under the spinlock. > >schedule_on_each_cpu() would likely be more expensive - and for > >no good reason. > > OK. > > And I assume you like the spinlock better than the > get/put_online_cpus(), as well. yeah - and get/put_online_cpus is sleepable too, so it doesnt really help unless i'm missing something ... Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-tip-commits" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html