Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

perf intel-pt: Synthesize new D (Intr Disabled) and t (Intr Toggle) flags

Update sample flags to represent the state and changes to the interrupt
flag.

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-17-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>

authored by

Adrian Hunter and committed by
Arnaldo Carvalho de Melo
11f18e47 069ca70e

+13
+13
tools/perf/util/intel-pt.c
··· 1329 1329 1330 1330 static void intel_pt_sample_flags(struct intel_pt_queue *ptq) 1331 1331 { 1332 + struct intel_pt *pt = ptq->pt; 1333 + 1332 1334 ptq->insn_len = 0; 1333 1335 if (ptq->state->flags & INTEL_PT_ABORT_TX) { 1334 1336 ptq->flags = PERF_IP_FLAG_BRANCH | PERF_IP_FLAG_TX_ABORT; ··· 1361 1359 ptq->flags |= PERF_IP_FLAG_TRACE_BEGIN; 1362 1360 if (ptq->state->type & INTEL_PT_TRACE_END) 1363 1361 ptq->flags |= PERF_IP_FLAG_TRACE_END; 1362 + 1363 + if (pt->cap_event_trace) { 1364 + if (ptq->state->type & INTEL_PT_IFLAG_CHG) { 1365 + if (!ptq->state->from_iflag) 1366 + ptq->flags |= PERF_IP_FLAG_INTR_DISABLE; 1367 + if (ptq->state->from_iflag != ptq->state->to_iflag) 1368 + ptq->flags |= PERF_IP_FLAG_INTR_TOGGLE; 1369 + } else if (!ptq->state->to_iflag) { 1370 + ptq->flags |= PERF_IP_FLAG_INTR_DISABLE; 1371 + } 1372 + } 1364 1373 } 1365 1374 1366 1375 static void intel_pt_setup_time_range(struct intel_pt *pt,