perf tools: Define Intel PT CFE (Control Flow Event) / EVD (Event Data) event
authorAdrian Hunter <adrian.hunter@intel.com>
Mon, 24 Jan 2022 08:41:45 +0000 (10:41 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Tue, 15 Feb 2022 20:08:27 +0000 (17:08 -0300)
Similar to other Intel PT synth events, define structures to hold CFE
and EVD data.

Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Link: https://lore.kernel.org/r/20220124084201.2699795-10-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
tools/perf/util/event.h

index c59331e..27ea7bd 100644 (file)
@@ -182,6 +182,7 @@ enum perf_synth_id {
        PERF_SYNTH_INTEL_PWRX,
        PERF_SYNTH_INTEL_CBR,
        PERF_SYNTH_INTEL_PSB,
+       PERF_SYNTH_INTEL_EVT,
 };
 
 /*
@@ -280,6 +281,33 @@ struct perf_synth_intel_psb {
        u64 offset;
 };
 
+struct perf_synth_intel_evd {
+       union {
+               struct {
+                       u8      evd_type;
+                       u8      reserved[7];
+               };
+               u64     et;
+       };
+       u64     payload;
+};
+
+/* Intel PT Event Trace */
+struct perf_synth_intel_evt {
+       u32 padding;
+       union {
+               struct {
+                       u32     type            :  5,
+                               reserved        :  2,
+                               ip              :  1,
+                               vector          :  8,
+                               evd_cnt         : 16;
+               };
+               u32     cfe;
+       };
+       struct perf_synth_intel_evd evd[];
+};
+
 /*
  * raw_data is always 4 bytes from an 8-byte boundary, so subtract 4 to get
  * 8-byte alignment.