On 15/07/13 09:14, Adrian Hunter wrote: > On 12/07/13 17:55, Peter Zijlstra wrote: >> On Fri, Jul 12, 2013 at 03:56:01PM +0300, Adrian Hunter wrote: >>>> There's events where this isn't a possible location; take PERF_RECORD_MMAP >>>> for >>>> instance; the tail is the complete filename. >>> >>> PERF_RECORD_MMAP falls in the category I have called non-sample events. >>> Those events are appended with an ID sample. perf tools parses the ID >>> sample backwards from header.size. So the ID is at the last position >>> relative to header.size >> >> But why? Why make it different per PERF_RECORD type? > > There have always been two formats: > > 1. PERF_RECORD_SAMPLE as defined by perf_output_sample() > > 2. everything else as defined by __perf_event__output_id_sample() > > The two formats are not the same, and there is no reason for them to be. > > PERF_RECORD_SAMPLE is parsed forwards, so the ID is at the first position. > > ID samples are parsed backwards, so the ID is at the last position (i.e. the > first position parsed).
If you want the ID at the first position in the ID sample, it is do-able. It means perf tools will have to be changed to calculate the variable start position of the ID sample, and then parse the ID sample forwards from there. Please advise. -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/