lkml.org 
[lkml]   [2015]   [Jan]   [9]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH v8 02/14] perf: Add AUX area to ring buffer for raw data streams
On Mon, Nov 17, 2014 at 09:33:00AM +0000, Metzger, Markus T wrote:
> > From: Peter Zijlstra <peterz@infradead.org>
> >
> > This patch introduces "AUX space" in the perf mmap buffer, intended for
> > exporting high bandwidth data streams to userspace, such as instruction
> > flow traces.
> >
> > AUX space is a ring buffer, defined by aux_{offset,size} fields in the
> > user_page structure, and read/write pointers aux_{head,tail}, which abide
> > by the same rules as data_* counterparts of the main perf buffer.
> >
> > In order to allocate/mmap AUX, userspace needs to set up aux_offset to
> > such an offset that will be greater than data_offset+data_size and
> > aux_size to be the desired buffer size. Both need to be page aligned.
> > Then, same aux_offset and aux_size should be passed to mmap() call and
> > if everything adds up, you should have an AUX buffer as a result.
>
> Why would userspace need to fill in aux_offset and aux_size? Can't the kernel
> do this when userspace mmaps the aux buffer like it does for the respective
> data_* fields?

I suppose we could; I'm trying to remember why I did it like this, I'm
failing to remember much past yesterday atm :/

> How would userspace fill in those fields if it mapped the data buffer read-only?

Good point, its not used much atm. But yes. That also reminds me; we
should probably finish this:

https://lkml.org/lkml/2013/7/8/154


\
 
 \ /
  Last update: 2015-01-09 16:41    [W:0.088 / U:1.056 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site