Re: Perf and ftrace [was Re: PyTimechart]

From: Ingo Molnar
Date: Wed May 12 2010 - 13:11:48 EST



* Peter Zijlstra <peterz@xxxxxxxxxxxxx> 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
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/