• Kan Liang's avatar
    perf tools: Add branch counter knob · 9fbb4b02
    Kan Liang authored
    Add a new branch filter, "counter", for the branch counter option. It is
    used to mark the events which should be logged in the branch. If it is
    applied with the -j option, the counters of all the events should be
    logged in the branch. If the legacy kernel doesn't support the new
    branch sample type, switching off the branch counter filter.
    
    The stored counter values in each branch are displayed right after the
    regular branch stack information via perf report -D.
    
    Usage examples:
    
      # perf record -e "{branch-instructions,branch-misses}:S" -j any,counter
    
    Only the first event, branch-instructions, collect the LBR. Both
    branch-instructions and branch-misses are marked as logged events.  The
    occurrences information of them can be found in the branch stack
    extension space of each branch.
    
      # perf record -e "{cpu/branch-instructions,branch_type=any/,cpu/branch-misses,branch_type=counter/}"
    
    Only the first event, branch-instructions, collect the LBR. Only the
    branch-misses event is marked as a logged event.
    
    Committer notes:
    
    I noticed 'perf test "Sample parsing"' failing, reported to the list and
    Kan provided a patch that checks if the evsel has a leader and that
    evsel->evlist is set, the comment in the source code further explains
    it.
    Reviewed-by: default avatarIan Rogers <irogers@google.com>
    Signed-off-by: default avatarKan Liang <kan.liang@linux.intel.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Alexey Bayduraev <alexey.v.bayduraev@linux.intel.com>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Tinghao Zhang <tinghao.zhang@intel.com>
    Link: https://lore.kernel.org/r/20231025201626.3000228-8-kan.liang@linux.intel.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    9fbb4b02
evsel.h 17.1 KB