Messages in this thread | | | Date | Wed, 22 Aug 2012 09:28:22 +0200 | From | Ingo Molnar <> | Subject | Re: [PATCH] perf: do not flush maps on COMM for perf report |
| |
* Luigi Semenzato <semenzato@chromium.org> wrote:
> 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.
It would be nice to add that too - we already have FORK/EXIT, this seems like a natural extension.
Thanks,
Ingo
| |