perf events: Make sample_type identity fields available in all PERF_RECORD_ events
authorArnaldo Carvalho de Melo <acme@redhat.com>
Sun, 5 Dec 2010 01:02:20 +0000 (23:02 -0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Sun, 5 Dec 2010 01:02:20 +0000 (23:02 -0200)
commitc980d1091810df13f21aabbce545fd98f545bbf7
treeccf26c6f97ac4965dee6daa7a91dde6b4108b94e
parent6844c09d849aeb00e8ddfe9525e8567a531c22d0
perf events: Make sample_type identity fields available in all PERF_RECORD_ events

If perf_event_attr.sample_id_all is set it will add the PERF_SAMPLE_ identity
info:

TID, TIME, ID, CPU, STREAM_ID

As a trailer, so that older perf tools can process new files, just ignoring the
extra payload.

With this its possible to do further analysis on problems in the event stream,
like detecting reordering of MMAP and FORK events, etc.

V2: Fixup header size in comm, mmap and task processing, as we have to take into
account different sample_types for each matching event, noticed by Thomas Gleixner.

Thomas also noticed a problem in v2 where if we didn't had space in the buffer we
wouldn't restore the header size.

Tested-by: Thomas Gleixner <tglx@linutronix.de>
Reviewed-by: Thomas Gleixner <tglx@linutronix.de>
Acked-by: Ian Munsie <imunsie@au1.ibm.com>
Acked-by: Peter Zijlstra <a.p.zijlstra@chello.nl>
Acked-by: Thomas Gleixner <tglx@linutronix.de>
Cc: Frédéric Weisbecker <fweisbec@gmail.com>
Cc: Ian Munsie <imunsie@au1.ibm.com>
Cc: Mike Galbraith <efault@gmx.de>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Stephane Eranian <eranian@google.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
LKML-Reference: <new-submission>
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
include/linux/perf_event.h
kernel/perf_event.c