• Adrian Hunter's avatar
    perf buildid-cache: Add ability to add kcore to the cache · fc1b691d
    Adrian Hunter authored
    kcore can be used to view the running kernel object code.  However,
    kcore changes as modules are loaded and unloaded, and when the kernel
    decides to modify its own code.  Consequently it is useful to create a
    copy of kcore at a particular time.  Unlike vmlinux, kcore is not unique
    for a given build-id.  And in addition, the kallsyms and modules files
    are also needed.  The tool therefore creates a directory:
    
    	~/.debug/[kernel.kcore]/<build-id>/<YYYYmmddHHMMSShh>
    
    which contains: kcore, kallsyms and modules.
    
    Note that the copied kcore contains only code sections.  See the
    kcore_copy() function for how that is determined.
    
    The tool will not make additional copies of kcore if there is already
    one with the same modules at the same addresses.
    
    Currently, perf tools will not look for kcore in the cache.  That is
    addressed in another patch.
    Signed-off-by: default avatarAdrian Hunter <adrian.hunter@intel.com>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Namhyung Kim <namhyung@gmail.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Stephane Eranian <eranian@google.com>
    Link: http://lkml.kernel.org/r/525BF849.5030405@intel.com
    [ renamed 'index' to 'idx' to avoid shadowing string.h symbol in f12,
      use at least one member initializer when initializing a struct to
      zeros, also to fix the build on f12 ]
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    fc1b691d
builtin-buildid-cache.c 8.63 KB