1. 28 5月, 2015 5 次提交
    • A
      perf tools: Reference count struct map · 84c2cafa
      Arnaldo Carvalho de Melo 提交于
      We have pointers to struct map instances in several places, like in the
      hist_entry instances, so we need a way to know when we can destroy them,
      otherwise we may either keep leaking them or end up referencing deleted
      instances.
      
      Start fixing it by reference counting them.
      
      This patch puts the reference count for struct map in place, replacing
      direct map__delete() calls with map__put() ones and then grabbing a
      reference count when adding it to the maps struct where maps for a
      struct thread are kept.
      
      Next we'll grab reference counts when setting pointers to struct map
      instances, in places like in the hist_entry code.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-wi19xczk0t2a41r1i2chuio5@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      84c2cafa
    • A
      perf tools: Check if a map is still in use when deleting it · facf3f06
      Arnaldo Carvalho de Melo 提交于
      I.e. match RB_CLEAR_NODE() with RB_EMPTY_NODE(), to check that it isn't
      in a rb tree at the time of its deletion.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-vumvhird765id11zbx00d2r8@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      facf3f06
    • A
      perf tools: Protect accesses the map rbtrees with a rw lock · 6a2ffcdd
      Arnaldo Carvalho de Melo 提交于
      To allow concurrent access, next step: refcount struct map instances, so
      that we can ditch maps->removed_maps and stop leaking threads, maps,
      then struct DSO needs the same treatment.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-o45w2w5dzrza38nzqxnqzhyf@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      6a2ffcdd
    • A
      perf tools: Introduce struct maps · 1eee78ae
      Arnaldo Carvalho de Melo 提交于
      That for now has the maps rbtree and the list for the dead maps, that
      may be still referenced from some hist_entry, etc.
      
      This paves the way for protecting the rbtree with a lock, then refcount
      the maps and finally remove the removed_maps list, as it'll not ne
      anymore needed.
      
      Cc: Adrian Hunter <adrian.hunter@intel.com>
      Cc: Borislav Petkov <bp@suse.de>
      Cc: David Ahern <dsahern@gmail.com>
      Cc: Don Zickus <dzickus@redhat.com>
      Cc: Frederic Weisbecker <fweisbec@gmail.com>
      Cc: Jiri Olsa <jolsa@redhat.com>
      Cc: Namhyung Kim <namhyung@kernel.org>
      Cc: Stephane Eranian <eranian@google.com>
      Link: http://lkml.kernel.org/n/tip-fl0fa6142pj8khj97fow3uw0@git.kernel.orgSigned-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      1eee78ae
    • I
      Merge tag 'perf-core-for-mingo' of... · 6632c4b4
      Ingo Molnar 提交于
      Merge tag 'perf-core-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git/acme/linux into perf/core
      
      Pull perf/core improvements and fixes from  Arnaldo Carvalho de Melo:
      
      New features:
      
        - Add option in 'perf sched' to merge like comms to lat output (Josef Bacik)
      
        - Improve 'perf probe' error messages when not finding a
          suitable vmlinux (Masami Hiramatsu)
      
      Infrastructure changes:
      
        - Use atomic.h for various pre-existing reference counts (Arnaldo Carvalho de Melo)
      
        - Leg work for refcounting 'struct map' (Arnaldo Carvalho de Melo)
      
        - Assign default value for some pointers (Martin Liška)
      
        - Improve setting of gcc debug option (Martin Liška)
      
        - Separate the tests and tools in installation (Nam T. Nguyen)
      
        - Reduce number of arguments of hist_entry_iter__add() (Namhyung Kim)
      
        - DSO data cache fixes (Namhyung Kim)
      Signed-off-by: NArnaldo Carvalho de Melo <acme@redhat.com>
      Signed-off-by: NIngo Molnar <mingo@kernel.org>
      6632c4b4
  2. 27 5月, 2015 35 次提交