• Ian Rogers's avatar
    perf parse-events: Only move force grouped evsels when sorting · b161f25f
    Ian Rogers authored
    Prior to this change, events without a group would be sorted as if they
    were from the location of the first event without a group. For example
    instructions and cycles are without a group:
    
      instructions,{imc_free_running/data_read/,imc_free_running/data_write/},cycles
    
    parse events would create an eventual evlist like:
    
      instructions,cycles,{uncore_imc_free_running_0/data_read/,uncore_imc_free_running_1/data_read/,uncore_imc_free_running_0/data_write/,uncore_imc_free_running_1/data_write/}
    
    This is done so that perf metric events, that must always be in a
    group, will be adjacent and so can be forced into a group.
    
    This change modifies the sorting so that only force grouped events,
    like perf metrics, are sorted and all other events keep their position
    with respect to groups in the evlist. The location of the force
    grouped event is chosen to match the first force grouped event.
    
    For architectures without force grouped events, ie anything not Intel
    Icelake or newer, this should mean sorting and fixing doesn't modify
    the event positions except when fixing the grouping for PMUs of things
    like uncore events.
    
    Fixes: 347c2f0a ("perf parse-events: Sort and group parsed events")
    Reported-by: default avatarAndi Kleen <ak@linux.intel.com>
    Signed-off-by: default avatarIan Rogers <irogers@google.com>
    Tested-by: default avatarAndi Kleen <ak@linux.intel.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
    Cc: Ingo Molnar <mingo@redhat.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Kan Liang <kan.liang@linux.intel.com>
    Cc: Mark Rutland <mark.rutland@arm.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Xing Zhengjun <zhengjun.xing@linux.intel.com>
    Link: https://lore.kernel.org/r/20230719001836.198363-4-irogers@google.comSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    b161f25f
parse-events.c 71.3 KB