diff options
Diffstat (limited to 'tools/perf/util')
-rw-r--r-- | tools/perf/util/session.h | 13 | ||||
-rw-r--r-- | tools/perf/util/symbol.c | 22 | ||||
-rw-r--r-- | tools/perf/util/symbol.h | 5 |
3 files changed, 29 insertions, 11 deletions
diff --git a/tools/perf/util/session.h b/tools/perf/util/session.h index 71252723a17d..61ca92e58ad4 100644 --- a/tools/perf/util/session.h +++ b/tools/perf/util/session.h | |||
@@ -127,4 +127,17 @@ void perf_session__process_machines(struct perf_session *self, | |||
127 | { | 127 | { |
128 | return machines__process(&self->machines, process, self); | 128 | return machines__process(&self->machines, process, self); |
129 | } | 129 | } |
130 | |||
131 | static inline | ||
132 | size_t perf_session__fprintf_dsos(struct perf_session *self, FILE *fp) | ||
133 | { | ||
134 | return machines__fprintf_dsos(&self->machines, fp); | ||
135 | } | ||
136 | |||
137 | static inline | ||
138 | size_t perf_session__fprintf_dsos_buildid(struct perf_session *self, FILE *fp, | ||
139 | bool with_hits) | ||
140 | { | ||
141 | return machines__fprintf_dsos_buildid(&self->machines, fp, with_hits); | ||
142 | } | ||
130 | #endif /* __PERF_SESSION_H */ | 143 | #endif /* __PERF_SESSION_H */ |
diff --git a/tools/perf/util/symbol.c b/tools/perf/util/symbol.c index 12359c37240c..caa890f8e2c0 100644 --- a/tools/perf/util/symbol.c +++ b/tools/perf/util/symbol.c | |||
@@ -1889,26 +1889,32 @@ struct dso *__dsos__findnew(struct list_head *head, const char *name) | |||
1889 | return dso; | 1889 | return dso; |
1890 | } | 1890 | } |
1891 | 1891 | ||
1892 | static void __dsos__fprintf(struct list_head *head, FILE *fp) | 1892 | static size_t __dsos__fprintf(struct list_head *head, FILE *fp) |
1893 | { | 1893 | { |
1894 | struct dso *pos; | 1894 | struct dso *pos; |
1895 | size_t ret = 0; | ||
1895 | 1896 | ||
1896 | list_for_each_entry(pos, head, node) { | 1897 | list_for_each_entry(pos, head, node) { |
1897 | int i; | 1898 | int i; |
1898 | for (i = 0; i < MAP__NR_TYPES; ++i) | 1899 | for (i = 0; i < MAP__NR_TYPES; ++i) |
1899 | dso__fprintf(pos, i, fp); | 1900 | ret += dso__fprintf(pos, i, fp); |
1900 | } | 1901 | } |
1902 | |||
1903 | return ret; | ||
1901 | } | 1904 | } |
1902 | 1905 | ||
1903 | void dsos__fprintf(struct rb_root *machines, FILE *fp) | 1906 | size_t machines__fprintf_dsos(struct rb_root *self, FILE *fp) |
1904 | { | 1907 | { |
1905 | struct rb_node *nd; | 1908 | struct rb_node *nd; |
1909 | size_t ret = 0; | ||
1906 | 1910 | ||
1907 | for (nd = rb_first(machines); nd; nd = rb_next(nd)) { | 1911 | for (nd = rb_first(self); nd; nd = rb_next(nd)) { |
1908 | struct machine *pos = rb_entry(nd, struct machine, rb_node); | 1912 | struct machine *pos = rb_entry(nd, struct machine, rb_node); |
1909 | __dsos__fprintf(&pos->kernel_dsos, fp); | 1913 | ret += __dsos__fprintf(&pos->kernel_dsos, fp); |
1910 | __dsos__fprintf(&pos->user_dsos, fp); | 1914 | ret += __dsos__fprintf(&pos->user_dsos, fp); |
1911 | } | 1915 | } |
1916 | |||
1917 | return ret; | ||
1912 | } | 1918 | } |
1913 | 1919 | ||
1914 | static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, | 1920 | static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, |
@@ -1926,12 +1932,12 @@ static size_t __dsos__fprintf_buildid(struct list_head *head, FILE *fp, | |||
1926 | return ret; | 1932 | return ret; |
1927 | } | 1933 | } |
1928 | 1934 | ||
1929 | size_t dsos__fprintf_buildid(struct rb_root *machines, FILE *fp, bool with_hits) | 1935 | size_t machines__fprintf_dsos_buildid(struct rb_root *self, FILE *fp, bool with_hits) |
1930 | { | 1936 | { |
1931 | struct rb_node *nd; | 1937 | struct rb_node *nd; |
1932 | size_t ret = 0; | 1938 | size_t ret = 0; |
1933 | 1939 | ||
1934 | for (nd = rb_first(machines); nd; nd = rb_next(nd)) { | 1940 | for (nd = rb_first(self); nd; nd = rb_next(nd)) { |
1935 | struct machine *pos = rb_entry(nd, struct machine, rb_node); | 1941 | struct machine *pos = rb_entry(nd, struct machine, rb_node); |
1936 | ret += __dsos__fprintf_buildid(&pos->kernel_dsos, fp, with_hits); | 1942 | ret += __dsos__fprintf_buildid(&pos->kernel_dsos, fp, with_hits); |
1937 | ret += __dsos__fprintf_buildid(&pos->user_dsos, fp, with_hits); | 1943 | ret += __dsos__fprintf_buildid(&pos->user_dsos, fp, with_hits); |
diff --git a/tools/perf/util/symbol.h b/tools/perf/util/symbol.h index 37b717b861c4..2cec6a10716a 100644 --- a/tools/perf/util/symbol.h +++ b/tools/perf/util/symbol.h | |||
@@ -162,9 +162,8 @@ int dso__load_vmlinux_path(struct dso *self, struct map *map, | |||
162 | symbol_filter_t filter); | 162 | symbol_filter_t filter); |
163 | int dso__load_kallsyms(struct dso *self, const char *filename, struct map *map, | 163 | int dso__load_kallsyms(struct dso *self, const char *filename, struct map *map, |
164 | symbol_filter_t filter); | 164 | symbol_filter_t filter); |
165 | void dsos__fprintf(struct rb_root *kerninfo_root, FILE *fp); | 165 | size_t machines__fprintf_dsos(struct rb_root *self, FILE *fp); |
166 | size_t dsos__fprintf_buildid(struct rb_root *kerninfo_root, | 166 | size_t machines__fprintf_dsos_buildid(struct rb_root *self, FILE *fp, bool with_hits); |
167 | FILE *fp, bool with_hits); | ||
168 | 167 | ||
169 | size_t dso__fprintf_buildid(struct dso *self, FILE *fp); | 168 | size_t dso__fprintf_buildid(struct dso *self, FILE *fp); |
170 | size_t dso__fprintf(struct dso *self, enum map_type type, FILE *fp); | 169 | size_t dso__fprintf(struct dso *self, enum map_type type, FILE *fp); |