• Anton Blanchard's avatar
    perf: Fix performance issue with perf report · 02bf60aa
    Anton Blanchard authored
    On a large machine we spend a lot of time in perf_header__find_attr when
    running perf report.
    
    If we are parsing a file without PERF_SAMPLE_ID then for each sample we call
    perf_header__find_attr and loop through all counter IDs, never finding a match.
    As the machine gets larger there are more per cpu counters and we spend an
    awful lot of time in there.
    
    The patch below initialises each sample id to -1ULL and checks for this in
    perf_header__find_attr. We may need to do something more intelligent eventually
    (eg a hash lookup from counter id to attr) but this at least fixes the most
    common usage of perf report.
    
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Eric B Munson <ebmunson@us.ibm.com>
    Acked-by: default avatarEric B Munson <ebmunson@us.ibm.com>
    LKML-Reference: <20100504111915.GB14636@kryten>
    Signed-off-by: default avatarAnton Blanchard <anton@samba.org>
    --
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    02bf60aa
header.c 26.2 KB