* [tip:perf/core] perf tools: Add machine__module_dso function
@ 2015-03-22 10:18 tip-bot for Jiri Olsa
0 siblings, 0 replies; only message in thread
From: tip-bot for Jiri Olsa @ 2015-03-22 10:18 UTC (permalink / raw)
To: linux-tip-commits
Cc: acme, eranian, jolsa, dsahern, tglx, fweisbec, paulus, hpa, mingo,
a.p.zijlstra, cjashfor, namhyung, linux-kernel, adrian.hunter
Commit-ID: da17ea33e5a5d0c5226a37c375575d689f6a741b
Gitweb: http://git.kernel.org/tip/da17ea33e5a5d0c5226a37c375575d689f6a741b
Author: Jiri Olsa <jolsa@kernel.org>
AuthorDate: Thu, 12 Feb 2015 22:10:52 +0100
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Sat, 21 Mar 2015 14:55:48 -0300
perf tools: Add machine__module_dso function
Separate the dso object addition and update when adding new kernel
module.
Currently we update dso's symtab_type any time we find it in the list,
because we can't distinguish between new and found dso from
__dsos__findnew function.
Adding machine__module_dso that separates finding and adding new dso
objects, so there's no superfluous update of dso.
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Acked-by: Namhyung Kim <namhyung@kernel.org>
Cc: Adrian Hunter <adrian.hunter@intel.com>
Cc: Corey Ashford <cjashfor@linux.vnet.ibm.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <a.p.zijlstra@chello.nl>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/n/tip-uvqgs5tyq4wssnq6fm43hgvk@git.kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/machine.c | 36 +++++++++++++++++++++++++-----------
1 file changed, 25 insertions(+), 11 deletions(-)
diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 24f8c97..dbb5f03 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -460,12 +460,35 @@ int machine__process_lost_event(struct machine *machine __maybe_unused,
return 0;
}
+static struct dso *machine__module_dso(struct machine *machine, const char *filename)
+{
+ struct dso *dso;
+ bool compressed;
+
+ dso = dsos__find(&machine->kernel_dsos, filename, false);
+ if (!dso) {
+ dso = dsos__addnew(&machine->kernel_dsos, filename);
+ if (dso == NULL)
+ return NULL;
+
+ if (machine__is_host(machine))
+ dso->symtab_type = DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE;
+ else
+ dso->symtab_type = DSO_BINARY_TYPE__GUEST_KMODULE;
+
+ /* _KMODULE_COMP should be next to _KMODULE */
+ if (is_kernel_module(filename, &compressed) && compressed)
+ dso->symtab_type++;
+ }
+
+ return dso;
+}
+
struct map *machine__new_module(struct machine *machine, u64 start,
const char *filename)
{
struct map *map;
- struct dso *dso = __dsos__findnew(&machine->kernel_dsos, filename);
- bool compressed;
+ struct dso *dso = machine__module_dso(machine, filename);
if (dso == NULL)
return NULL;
@@ -474,15 +497,6 @@ struct map *machine__new_module(struct machine *machine, u64 start,
if (map == NULL)
return NULL;
- if (machine__is_host(machine))
- dso->symtab_type = DSO_BINARY_TYPE__SYSTEM_PATH_KMODULE;
- else
- dso->symtab_type = DSO_BINARY_TYPE__GUEST_KMODULE;
-
- /* _KMODULE_COMP should be next to _KMODULE */
- if (is_kernel_module(filename, &compressed) && compressed)
- dso->symtab_type++;
-
map_groups__insert(&machine->kmaps, map);
return map;
}
^ permalink raw reply related [flat|nested] only message in thread
only message in thread, other threads:[~2015-03-22 10:19 UTC | newest]
Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2015-03-22 10:18 [tip:perf/core] perf tools: Add machine__module_dso function tip-bot for Jiri Olsa
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).