Re: Perf and ftrace [was Re: PyTimechart]

Ingo Molnar
2010-05-12T17:11:45Z

* Peter Zijlstra <peterz@infradead.org> wrote:

> On Wed, 2010-05-12 at 18:46 +0200, Frederic Weisbecker wrote:
> > But there is no strong reason for perf record not to use splice,
> > a part the fact that perf doesn't support splice.
>
> Its mostly an interface/api question. You cannot easily splice() a mmap()'ed
> buffer on machines that have address constraints like sparc.
>
> The thing I was thinking about is adding a new syscall that creates a single
> buffer of specified size and provides a fd. Then use
> PERF_EVENT_IOC_SET_OUTPUT, to connect an event to that fd/buffer and use
> splice() on that fd.
>
> It could reuse most of the perf buffer code, but simply not map it into
> userspace and therefore not have the restriction on the vaddr.
>
> Once you have that, a .splice_read implementation shouldn't be too hard.

That would be a really cool approach. Since most of the performance-sensitive
streaming happens in the likes of perf record, the actual interface can be
enhanced with no effect to the end user.

Ingo