Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1273316
| From | Arnaldo Carvalho de Melo <acme@kernel.org> |
|---|---|
| Newsgroups | linux.kernel |
| Subject | [PATCH 31/37] perf callchain: Add count fields to struct callchain_node |
| Date | 2015-11-19 19:00 +0100 |
| Message-ID | <qwBF0-44P-19@gated-at.bofh.it> (permalink) |
| References | <qwBEZ-44P-3@gated-at.bofh.it> |
| Organization | linux.* mail to news gateway |
From: Namhyung Kim <namhyung@kernel.org>
It's to track the count of occurrences of the callchains.
Signed-off-by: Namhyung Kim <namhyung@kernel.org>
Acked-by: Brendan Gregg <brendan.d.gregg@gmail.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <andi@firstfloor.org>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Kan Liang <kan.liang@intel.com>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Link: http://lkml.kernel.org/r/1447047946-1691-5-git-send-email-namhyung@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/callchain.c | 10 ++++++++++
tools/perf/util/callchain.h | 7 +++++++
2 files changed, 17 insertions(+)
diff --git a/tools/perf/util/callchain.c b/tools/perf/util/callchain.c
index b948bd068966..e390edd31504 100644
--- a/tools/perf/util/callchain.c
+++ b/tools/perf/util/callchain.c
@@ -437,6 +437,8 @@ add_child(struct callchain_node *parent,
new->children_hit = 0;
new->hit = period;
+ new->children_count = 0;
+ new->count = 1;
return new;
}
@@ -484,6 +486,9 @@ split_add_child(struct callchain_node *parent,
parent->children_hit = callchain_cumul_hits(new);
new->val_nr = parent->val_nr - idx_local;
parent->val_nr = idx_local;
+ new->count = parent->count;
+ new->children_count = parent->children_count;
+ parent->children_count = callchain_cumul_counts(new);
/* create a new child for the new branch if any */
if (idx_total < cursor->nr) {
@@ -494,6 +499,8 @@ split_add_child(struct callchain_node *parent,
parent->hit = 0;
parent->children_hit += period;
+ parent->count = 0;
+ parent->children_count += 1;
node = callchain_cursor_current(cursor);
new = add_child(parent, cursor, period);
@@ -516,6 +523,7 @@ split_add_child(struct callchain_node *parent,
rb_insert_color(&new->rb_node_in, &parent->rb_root_in);
} else {
parent->hit = period;
+ parent->count = 1;
}
}
@@ -562,6 +570,7 @@ append_chain_children(struct callchain_node *root,
inc_children_hit:
root->children_hit += period;
+ root->children_count++;
}
static int
@@ -614,6 +623,7 @@ append_chain(struct callchain_node *root,
/* we match 100% of the path, increment the hit */
if (matches == root->val_nr && cursor->pos == cursor->nr) {
root->hit += period;
+ root->count++;
return 0;
}
diff --git a/tools/perf/util/callchain.h b/tools/perf/util/callchain.h
index 060e636e33ab..cdb386d9ba02 100644
--- a/tools/perf/util/callchain.h
+++ b/tools/perf/util/callchain.h
@@ -60,6 +60,8 @@ struct callchain_node {
struct rb_root rb_root_in; /* input tree of children */
struct rb_root rb_root; /* sorted output tree of children */
unsigned int val_nr;
+ unsigned int count;
+ unsigned int children_count;
u64 hit;
u64 children_hit;
};
@@ -145,6 +147,11 @@ static inline u64 callchain_cumul_hits(struct callchain_node *node)
return node->hit + node->children_hit;
}
+static inline unsigned callchain_cumul_counts(struct callchain_node *node)
+{
+ return node->count + node->children_count;
+}
+
int callchain_register_param(struct callchain_param *param);
int callchain_append(struct callchain_root *root,
struct callchain_cursor *cursor,
--
2.1.0
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to linux.kernel | Previous | Next — Previous in thread | Next in thread | Find similar | Unroll thread
[GIT PULL 00/37] perf/core improvements and fixes Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 31/37] perf callchain: Add count fields to struct callchain_node Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
Re: [PATCH 31/37] perf callchain: Add count fields to struct callchain_node Frederic Weisbecker <fweisbec@gmail.com> - 2015-11-23 15:40 +0100
Re: [PATCH 31/37] perf callchain: Add count fields to struct callchain_node Namhyung Kim <namhyung@kernel.org> - 2015-11-24 06:20 +0100
[PATCH 27/37] perf tools: Fix machine__create_kernel_maps to put kernel dso refcount Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 06/37] perf bpf: Add BPF_PROLOGUE config options for further patches Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 17/37] perf test: Print result for each LLVM subtest Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 30/37] perf callchain: Abstract callchain print function Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 10/37] perf bpf: Allow BPF program config probing options Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 35/37] perf hists browser: Support folded callchains Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 37/37] perf ui/gtk: Support folded callchains Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 36/37] perf ui/gtk: Support flat callchains Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 34/37] perf hists browser: Support flat callchains Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
Re: [PATCH 34/37] perf hists browser: Support flat callchains Frederic Weisbecker <fweisbec@gmail.com> - 2015-11-23 16:20 +0100
Re: [PATCH 34/37] perf hists browser: Support flat callchains Namhyung Kim <namhyung@kernel.org> - 2015-11-24 06:30 +0100
Re: [PATCH 34/37] perf hists browser: Support flat callchains Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> - 2015-11-24 15:50 +0100
Re: [PATCH 34/37] perf hists browser: Support flat callchains Namhyung Kim <namhyung@kernel.org> - 2015-11-25 02:30 +0100
Re: [PATCH 34/37] perf hists browser: Support flat callchains Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> - 2015-11-25 02:40 +0100
Re: [PATCH 34/37] perf hists browser: Support flat callchains Arnaldo Carvalho de Melo <arnaldo.melo@gmail.com> - 2015-11-25 03:20 +0100
Re: [PATCH 34/37] perf hists browser: Support flat callchains Namhyung Kim <namhyung@kernel.org> - 2015-11-25 22:10 +0100
[PATCH 03/37] tools: Adopt memdup() from tools/perf, moving it to tools/lib/string.c Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 02/37] tools: Fix selftests_install Makefile rule Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 33/37] perf hists browser: Factor out hist_browser__show_callchain_list() Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 32/37] perf report: Add callchain value option Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:00 +0100
[PATCH 08/37] perf bpf: Allow BPF program attach to uprobe events Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 21/37] perf machine: Fix machine__findnew_module_map to put registered map Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 14/37] perf test: Fix 'perf test BPF' when it fails to find a suitable vmlinux Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 13/37] perf test: Test the BPF prologue adding infrastructure Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 16/37] perf tests: Pass the subtest index to each test routine Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 18/37] perf test: Print result for each BPF subtest Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 11/37] perf bpf: Add prologue for BPF programs for fetching arguments Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 19/37] perf test: Mute test cases error messages if verbose == 0 Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 22/37] perf machine: Fix machine__destroy_kernel_maps to drop vmlinux_maps references Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 12/37] perf bpf: Generate prologue for BPF programs Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 20/37] perf probe: Fix to free temporal Dwarf_Frame Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 25/37] perf tools: Fix to put new map after inserting to map_groups in dso__load_sym Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 28/37] perf machine: Fix machine__findnew_module_map to put dso Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 26/37] perf tools: Fix __dsos__addnew to put dso after adding it to the list Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 04/37] tools: Clone the kernel's strtobool function Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 23/37] perf machine: Fix to destroy kernel maps when machine exits Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
[PATCH 05/37] bpf tools: Load a program with different instances using preprocessor Arnaldo Carvalho de Melo <acme@kernel.org> - 2015-11-19 19:10 +0100
RE: [GIT PULL 00/37] perf/core improvements and fixes 平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com> - 2015-11-20 11:10 +0100
Re: [GIT PULL 00/37] perf/core improvements and fixes 'Arnaldo Carvalho de Melo' <acme@kernel.org> - 2015-11-20 13:10 +0100
RE: [GIT PULL 00/37] perf/core improvements and fixes 平松雅巳 / HIRAMATU,MASAMI <masami.hiramatsu.pt@hitachi.com> - 2015-11-20 18:00 +0100
Re: [GIT PULL 00/37] perf/core improvements and fixes Ingo Molnar <mingo@kernel.org> - 2015-11-23 09:20 +0100
csiph-web