• A
    perf record: Introduce a symtab cache · 4cf40131
    Arnaldo Carvalho de Melo 提交于
    Now a cache will be created in a ~/.debug debuginfo like
    hierarchy, so that at the end of a 'perf record' session all the
    binaries (with build-ids) involved get collected and indexed by
    their build-ids, so that perf report can find them.
    
    This is interesting when developing software where you want to
    do a 'perf diff' with the previous build and opens avenues for
    lots more interesting tools, like a 'perf diff --graph' that
    takes more than two binaries into account.
    
    Tunables for collecting just the symtabs can be added if one
    doesn't want to have the full binary, but having the full binary
    allows things like 'perf rerecord' or other tools that can
    re-run the tests by having access to the exact binary in some
    perf.data file, so it may well be interesting to keep the full
    binary there.
    
    Space consumption is minimised by trying to use hard links, a
    'perf cache' tool to manage the space used, a la ccache is
    required to purge older entries.
    
    With this in place it will be possible also to introduce new
    commands, 'perf archive' and 'perf restore' (or some more
    suitable and future proof names) to create a cpio/tar file with
    the perf data and the files in the cache that _had_ perf hits of
    interest.
    
    There are more aspects to polish, like finding the right vmlinux
    file to cache, etc, but this is enough for a first step.
    Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
    Cc: Frédéric Weisbecker <fweisbec@gmail.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Paul Mackerras <paulus@samba.org>
    LKML-Reference: <1261957026-15580-10-git-send-email-acme@infradead.org>
    Signed-off-by: NIngo Molnar <mingo@elte.hu>
    4cf40131
header.c 13.8 KB