• Arnaldo Carvalho de Melo's avatar
    perf tools: Don't keep unreferenced maps when unmaps are detected · 0a1eae39
    Arnaldo Carvalho de Melo authored
    For a file with:
    
    [root@emilia linux-2.6-tip]# perf report -D -fi allmodconfig-j32.perf.data | grep events:
         TOTAL events:      36933
          MMAP events:       9056
          LOST events:          0
          COMM events:       1702
          EXIT events:       1887
      THROTTLE events:          8
    UNTHROTTLE events:          8
          FORK events:       1894
          READ events:          0
        SAMPLE events:      22378
          ATTR events:          0
    EVENT_TYPE events:          0
    TRACING_DATA events:          0
      BUILD_ID events:          0
    [root@emilia linux-2.6-tip]#
    
    Testing with valgrind and making perf_session__delete() a nop, so that
    we can notice how many maps were actually deleted due to not having any
    samples on it:
    
    ==== HEAP SUMMARY:
    
    Before:
    
    ==10339==     in use at exit: 8,909,997 bytes in 68,690 blocks
    ==10339==   total heap usage: 78,696 allocs, 10,007 frees, 11,925,853 bytes allocated
    
    After:
    
    ==10506==     in use at exit: 8,902,605 bytes in 68,606 blocks
    ==10506==   total heap usage: 78,696 allocs, 10,091 frees, 11,925,853 bytes allocated
    
    I.e. just 84 detected unmaps with no hits out of 9056 for this workload,
    not much, but in some other long running workload this may save more
    bytes.
    
    Cc: Frederic Weisbecker <fweisbec@gmail.com>
    Cc: Mike Galbraith <efault@gmx.de>
    Cc: Peter Zijlstra <peterz@infradead.org>
    Cc: Stephane Eranian <eranian@google.com>
    LKML-Reference: <new-submission>
    Signed-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    0a1eae39
map.h 6.32 KB