• Masami Hiramatsu's avatar
    perf tools: Fix map_groups__clone to put cloned map · bae32b50
    Masami Hiramatsu authored
    Fix map_groups__clone to put cloned map after inserting it to the
    map_groups.
    
    Refcnt debugger shows:
      ----
      ==== [0] ====
      Unreclaimed map: 0x2a27ee0
      Refcount +1 => 1 at
        ./perf(map_groups__clone+0x8d) [0x4bb7ed]
        ./perf(thread__fork+0xbe) [0x4c1f9e]
        ./perf(machine__process_fork_event+0x216) [0x4b79a6]
        ./perf(perf_event__synthesize_threads+0x38b) [0x48135b]
        ./perf(cmd_top+0xdc6) [0x43cb76]
        ./perf() [0x477223]
        ./perf(main+0x617) [0x422077]
        /lib64/libc.so.6(__libc_start_main+0xf0) [0x7ff806af8fe0]
        ./perf() [0x4221ed]
      Refcount +1 => 2 at
        ./perf(map_groups__clone+0x128) [0x4bb888]
        ./perf(thread__fork+0xbe) [0x4c1f9e]
        ./perf(machine__process_fork_event+0x216) [0x4b79a6]
        ./perf(perf_event__synthesize_threads+0x38b) [0x48135b]
        ./perf(cmd_top+0xdc6) [0x43cb76]
        ./perf() [0x477223]
        ./perf(main+0x617) [0x422077]
        /lib64/libc.so.6(__libc_start_main+0xf0) [0x7ff806af8fe0]
        ./perf() [0x4221ed]
      Refcount -1 => 1 at
        ./perf(map_groups__exit+0x87) [0x4ba757]
        ./perf(map_groups__put+0x68) [0x4ba9a8]
        ./perf(thread__put+0x8b) [0x4c1aeb]
        ./perf(machine__delete_threads+0x81) [0x4b48f1]
        ./perf(perf_session__delete+0x4f) [0x4be63f]
        ./perf(cmd_top+0x1094) [0x43ce44]
        ./perf() [0x477223]
        ./perf(main+0x617) [0x422077]
        /lib64/libc.so.6(__libc_start_main+0xf0) [0x7ff806af8fe0]
        ./perf() [0x4221ed]
      ----
    
    This shows map_groups__clone get the map twice and put it when
    map_groups__exit.
    Signed-off-by: default avatarMasami Hiramatsu <masami.hiramatsu.pt@hitachi.com>
    Cc: Adrian Hunter <adrian.hunter@intel.com>
    Cc: Jiri Olsa <jolsa@redhat.com>
    Cc: Namhyung Kim <namhyung@kernel.org>
    Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
    Link: http://lkml.kernel.org/r/20151209021120.10245.95388.stgit@localhost.localdomainSigned-off-by: default avatarArnaldo Carvalho de Melo <acme@redhat.com>
    bae32b50
map.c 18.8 KB