Messages in this thread | | | Date | Mon, 17 Nov 2014 13:45:18 -0800 | From | Andi Kleen <> | Subject | Re: [PATCH v8 02/14] perf: Add AUX area to ring buffer for raw data streams |
| |
On Mon, Nov 17, 2014 at 01:24:00PM -0800, Sukadev Bhattiprolu wrote: > Alexander Shishkin [alexander.shishkin@linux.intel.com] 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. > > The "format" of this raw stream of data can differ across processors > (and architecutres) correct ? i.e the perf tool processing of this > aux data will also differ across processors ?
Yes.
The main caveat is that you need special handling code in perf.
> > Power8 processors support what we call 24x7 counters that collect info > on a large number of events. The current 24x7 support in > (arch/powerpc/perf/hv-24x7.c) currently uses reading one counter at a > time using the pmu->read() interface. > > We are looking for ways to export much larger number of counters through > one pmu->read() or another call. I am trying to see if the hv-24x7 pmu > could use this aux interface and then have/implement a helper in perf > tool to extract the counter values.
It's probably only worth it if your amount of data is extremely high and has to be to compressed (like in PT -- no choice, cannot do it otherwise)
If your data amounts are more reasonable it will be a lot simpler to stay with the current perf interfaces, even though they have a bit higher overhead.
-Andi
-- ak@linux.intel.com -- Speaking for myself only
| |