perf tools: Reference count struct thread
We need to do that to stop accumulating entries in the dead_threads linked list, i.e. we were keeping references to threads in struct hists that continue to exist even after a thread exited and was removed from the machine threads rbtree. We still keep the dead_threads list, but just for debugging, allowing us to iterate at any given point over the threads that still are referenced by things like struct hist_entry. 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-3ejvfyed0r7ue61dkurzjux4@git.kernel.org Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
This commit is contained in:
@@ -1467,7 +1467,7 @@ static int perf_evsel__hists_browse(struct perf_evsel *evsel, int nr_events,
|
||||
perf_hpp__set_user_width(symbol_conf.col_width_list_str);
|
||||
|
||||
while (1) {
|
||||
const struct thread *thread = NULL;
|
||||
struct thread *thread = NULL;
|
||||
const struct dso *dso = NULL;
|
||||
int choice = 0,
|
||||
annotate = -2, zoom_dso = -2, zoom_thread = -2,
|
||||
@@ -1754,13 +1754,13 @@ zoom_thread:
|
||||
pstack__remove(fstack, &browser->hists->thread_filter);
|
||||
zoom_out_thread:
|
||||
ui_helpline__pop();
|
||||
browser->hists->thread_filter = NULL;
|
||||
thread__zput(browser->hists->thread_filter);
|
||||
perf_hpp__set_elide(HISTC_THREAD, false);
|
||||
} else {
|
||||
ui_helpline__fpush("To zoom out press <- or -> + \"Zoom out of %s(%d) thread\"",
|
||||
thread->comm_set ? thread__comm_str(thread) : "",
|
||||
thread->tid);
|
||||
browser->hists->thread_filter = thread;
|
||||
browser->hists->thread_filter = thread__get(thread);
|
||||
perf_hpp__set_elide(HISTC_THREAD, false);
|
||||
pstack__push(fstack, &browser->hists->thread_filter);
|
||||
}
|
||||
|
Reference in New Issue
Block a user