Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1306522
| From | Daniel Borkmann <daniel@iogearbox.net> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH net-next] perf/core: Put size of a sample at the end of it by PERF_SAMPLE_TAILSIZE |
| Date | 2016-01-11 18:10 +0100 |
| Message-ID | <qPO8H-5nr-43@gated-at.bofh.it> (permalink) |
| References | <qPKHN-2Wj-51@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
Hi Wang, On 01/11/2016 02:24 PM, Wang Nan wrote: > This patch introduces a PERF_SAMPLE_TAILSIZE flag which allows a size > field attached at the end of a sample. The idea comes from [1] that, > with tie size at tail of an event, it is possible for user program who > read from the ring buffer parse events backward. > > For example: > > head > | > V > +--+---+-------+----------+------+---+ > |E6|...| B 8| C 11| D 7|E..| > +--+---+-------+----------+------+---+ > > In this case, from the 'head' pointer provided by kernel, user program > can first see '6' by (*(head - sizeof(u64))), then it can get the start > pointer of record 'E', then it can read size and find start position > of record D, C, B in similar way. > > The implementation is easy: adding a PERF_SAMPLE_TAILSIZE flag, makes > perf_output_sample() output size at the end of a sample. > > Following things are done for ensure the ring buffer is safe for > backward parsing: > > - Don't allow two events with different PERF_SAMPLE_TAILSIZE setting > set their output to each other; > > - For non-sample events, also output tailsize if required. > > This patch has a limitation for perf: > > Before reading such ring buffer, perf must ensure all events which may > output to it is already stopped, so the 'head' pointer it get is the > end of the last record. > > [1] http://lkml.kernel.org/g/1449063499-236703-1-git-send-email-wangnan0@huawei.com > > Signed-off-by: Wang Nan <wangnan0@huawei.com> > Cc: Adrian Hunter <adrian.hunter@intel.com> > Cc: Arnaldo Carvalho de Melo <acme@redhat.com> > Cc: David Ahern <dsahern@gmail.com> > Cc: Ingo Molnar <mingo@kernel.org> > Cc: Peter Zijlstra <a.p.zijlstra@chello.nl> > Cc: Yunlong Song <yunlong.song@huawei.com> > Cc: David S. Miller <davem@davemloft.net> [...] As this seems unrelated to networking, net-next tree seems not really appropriate? Cheers, Daniel
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[PATCH net-next] perf/core: Put size of a sample at the end of it by PERF_SAMPLE_TAILSIZE Wang Nan <wangnan0@huawei.com> - 2016-01-11 14:30 +0100
Re: [PATCH net-next] perf/core: Put size of a sample at the end of it by PERF_SAMPLE_TAILSIZE Daniel Borkmann <daniel@iogearbox.net> - 2016-01-11 18:10 +0100
Re: [PATCH net-next] perf/core: Put size of a sample at the end of it by PERF_SAMPLE_TAILSIZE Alexei Starovoitov <alexei.starovoitov@gmail.com> - 2016-01-11 19:20 +0100
Re: [PATCH net-next] perf/core: Put size of a sample at the end of it by PERF_SAMPLE_TAILSIZE Peter Zijlstra <peterz@infradead.org> - 2016-01-11 19:30 +0100
csiph-web