• Arnaldo Carvalho de Melo's avatar
    perf hist: Remove dummy entries when finding real ones. · 5f8b4d5d
    Arnaldo Carvalho de Melo authored
    When he have an event group we have multiple struct hist instances, one
    per evsel, and in each of these hists we may have hist_entries that
    point to the same thing being observed, say a symbol, i.e. if we're
    looking at instructions and cycles, then we'll have one hist_entry in
    the "instructions" evsel and another in the "cycles" evsel.
    
    We need to link those to then show one column for each. When we're
    looking at some other pair of events, say instructions and cache misses,
    we may have just the "instructions" hist entry and not one for "cache
    misses", as instructions not necessarily generate cache misses, as the
    logic expects one hist_entry per evsel, we end up adding "dummy"
    hist_entries.
    
    This is enough for 'perf report', that does this matching operation
    (hists__match()) just once after processing all events, but for 'perf
    top', we do this at each refresh, so we may finally find events matching
    and then we need to trow away the dummies and link with the real events.
    
    So if we find a match, traverse the link of matches and trow away
    dummies for that hists.
    
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@kernel.org>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Link: https://lkml.kernel.org/n/tip-dwvtjqqifsbsczeb35q6mqkk@git.kernel.orgSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    5f8b4d5d
hist.c 65.8 KB