perf script: Add branch types for VM-Entry and VM-Exit
authorAdrian Hunter <adrian.hunter@intel.com>
Thu, 18 Feb 2021 09:57:51 +0000 (11:57 +0200)
committerArnaldo Carvalho de Melo <acme@redhat.com>
Thu, 18 Feb 2021 19:12:51 +0000 (16:12 -0300)
In preparation to support Intel PT decoding of virtual machine traces, add
branch types for VM-Entry and VM-Exit.

Note they are both treated as "calls" because the VM-Exit transfers control
to a different address.

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

index 46bb963..5915f19 100644 (file)
@@ -1537,6 +1537,8 @@ static struct {
        {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_TX_ABORT, "tx abrt"},
        {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_TRACE_BEGIN, "tr strt"},
        {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_TRACE_END, "tr end"},
+       {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_CALL | PERF_IP_FLAG_VMENTRY, "vmentry"},
+       {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_CALL | PERF_IP_FLAG_VMEXIT, "vmexit"},
        {0, NULL}
 };
 
index db74471..5cd1891 100644 (file)
@@ -438,6 +438,8 @@ static struct {
        {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_TX_ABORT, "transaction abort"},
        {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_TRACE_BEGIN, "trace begin"},
        {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_TRACE_END, "trace end"},
+       {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_CALL | PERF_IP_FLAG_VMENTRY, "vm entry"},
+       {PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_CALL | PERF_IP_FLAG_VMEXIT, "vm exit"},
        {0, NULL}
 };
 
index e3150a6..f603edb 100644 (file)
@@ -96,6 +96,8 @@ enum {
        PERF_IP_FLAG_TRACE_BEGIN        = 1ULL << 8,
        PERF_IP_FLAG_TRACE_END          = 1ULL << 9,
        PERF_IP_FLAG_IN_TX              = 1ULL << 10,
+       PERF_IP_FLAG_VMENTRY            = 1ULL << 11,
+       PERF_IP_FLAG_VMEXIT             = 1ULL << 12,
 };
 
 #define PERF_IP_FLAG_CHARS "bcrosyiABEx"
@@ -110,7 +112,9 @@ enum {
        PERF_IP_FLAG_INTERRUPT          |\
        PERF_IP_FLAG_TX_ABORT           |\
        PERF_IP_FLAG_TRACE_BEGIN        |\
-       PERF_IP_FLAG_TRACE_END)
+       PERF_IP_FLAG_TRACE_END          |\
+       PERF_IP_FLAG_VMENTRY            |\
+       PERF_IP_FLAG_VMEXIT)
 
 #define MAX_INSN 16