On Wed, Oct 21, 2015 at 06:31:04PM +0800, xiakaixu wrote: > The RFC patch set contains the necessary commit log [1].
That's of course the wrong place, this should be in the patch's Changelog. It doesn't become less relevant. > In some scenarios we don't want to output trace data when perf sampling > in order to reduce overhead. For example, perf can be run as daemon to > dump trace data when necessary, such as the system performance goes down. > Just like the example given in the cover letter, we only receive the > samples within sys_write() syscall. > > The helper bpf_perf_event_control() in this patch set can control the > data output process and get the samples we are most interested in. > The cpu_function_call is probably too much to do from bpf program, so > I choose current design that like 'soft_disable'. So, IIRC, we already require eBPF perf events to be CPU-local, which obviates the entire need for IPIs. So calling pmu->stop() seems entirely possible (its even NMI safe). This, however, does not explain if you need nesting, your patch seemed to have a counter, which suggest you do. In any case, you could add perf_event_{stop,start}_local() to mirror the existing perf_event_read_local(), no? That would stop the entire thing and reduce even more overhead than simply skipping the overflow handler. > [1] https://lkml.org/lkml/2015/10/12/135 Blergh, vger should auto drop emails with lkml.org links in, that site is getting ridiculously unreliable. (It did show the email after a second try -- this time) Proper links are of the form: http://lkml.kernel.org/r/$MSGID Those have the bonus of actually including the msgid which helps with finding the email in local archives/mailers. -- To unsubscribe from this list: send the line "unsubscribe netdev" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html