Messages in this thread | | | Date | Fri, 9 Jan 2015 16:18:14 +0100 | From | Peter Zijlstra <> | Subject | Re: [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
| |