Skip to content
  • Luigi Semenzato's avatar
    perf tools: do not flush maps on COMM for perf report · 9fdbf671
    Luigi Semenzato authored
    
    
    This fixes a long-standing bug caused by the lack of separate COMM and EXEC
    record types, which makes "perf report" lose track of symbols when a process
    renames itself.
    
    With this fix (suggested by Stephane Eranian), a COMM (rename) no longer
    flushes the maps, which is the correct behavior.  An EXEC also no longer
    flushes the maps, but this doesn't matter because as new mappings are created
    (for the executable and the libraries) the old mappings are automatically
    removed.  This is not by accident: the functionality is necessary because DLLs
    can be explicitly loaded at any time with dlopen(), possibly on top of existing
    text, so "perf report" handles correctly the clobbering of new mappings on top
    of old ones.
    
    An alternative patch (which I proposed earlier) would be to introduce a
    separate PERF_RECORD_EXEC type, but it is a much larger change (about 300
    lines) and is not necessary.
    
    Signed-off-by: default avatarLuigi Semenzato <semenzato@chromium.org>
    Tested-by: default avatarStephane Eranian <eranian@google.com>
    Acked-by: default avatarStephane Eranian <eranian@google.com>
    Cc: "Eric W. Biederman" <ebiederm@xmission.com>
    Cc: "Rafael J. Wysocki" <rjw@sisk.pl>
    Cc: Alexander Viro <viro@zeniv.linux.org.uk>
    Cc: Andi Kleen <ak@linux.intel.com>
    Cc: Andrew Morton <akpm@linux-foundation.org>
    Cc: David Ahern <dsahern@gmail.com>
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
    Cc: Ingo Molnar <mingo@elte.hu>
    Cc: Lucas De Marchi <lucas.demarchi@profusion.mobi>
    Cc: Namhyung Kim <namhyung@gmail.com>
    Cc: Oleg Nesterov <oleg@redhat.com>
    Cc: Olof Johansson <olofj@chromium.org>
    Cc: Paul Gortmaker <paul.gortmaker@windriver.com>
    Cc: Paul Mackerras <paulus@samba.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Cc: Robert Richter <robert.richter@amd.com>
    Cc: Sonny Rao <sonnyrao@chromium.org>
    Cc: Stephane Eranian <eranian@google.com>
    Cc: Stephen Wilson <wilsons@start.ca>
    Cc: Tejun Heo <tj@kernel.org>
    Cc: Vasiliy Kulikov <segoon@openwall.com>
    Link: http://lkml.kernel.org/r/1345585940-6497-1-git-send-email-semenzato@chromium.org
    
    
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    9fdbf671