mirror of https://lore.kernel.org/lkml/
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: linux-kernel@vger.kernel.org,
	Adrian Hunter <adrian.hunter@intel.com>,
	David Ahern <dsahern@gmail.com>,
	Frederic Weisbecker <fweisbec@gmail.com>,
	Jiri Olsa <jolsa@redhat.com>, Namhyung Kim <namhyung@gmail.com>,
	Paul Mackerras <paulus@samba.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Stephane Eranian <eranian@google.com>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 18/27] perf tools: Separate the VDSO map name from the VDSO dso name
Date: Fri, 25 Jul 2014 12:37:00 -0300	[thread overview]
Message-ID: <1406302629-11790-19-git-send-email-acme@kernel.org> (raw)
In-Reply-To: <1406302629-11790-1-git-send-email-acme@kernel.org>

From: Adrian Hunter <adrian.hunter@intel.com>

This is in preparation for supporting 32-bit compatibility VDSOs.

Reviewed-by: Jiri Olsa <jolsa@redhat.com>
Signed-off-by: Adrian Hunter <adrian.hunter@intel.com>
Cc: David Ahern <dsahern@gmail.com>
Cc: Frederic Weisbecker <fweisbec@gmail.com>
Cc: Jiri Olsa <jolsa@redhat.com>
Cc: Namhyung Kim <namhyung@gmail.com>
Cc: Paul Mackerras <paulus@samba.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Stephane Eranian <eranian@google.com>
Link: http://lkml.kernel.org/r/1406035081-14301-49-git-send-email-adrian.hunter@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/header.c     | 10 +++++-----
 tools/perf/util/symbol-elf.c |  2 +-
 tools/perf/util/vdso.c       | 11 ++++++++---
 tools/perf/util/vdso.h       |  6 ++++++
 4 files changed, 20 insertions(+), 9 deletions(-)

diff --git a/tools/perf/util/header.c b/tools/perf/util/header.c
index a588a3eb5753..158c787ce0c4 100644
--- a/tools/perf/util/header.c
+++ b/tools/perf/util/header.c
@@ -256,9 +256,9 @@ static int __dsos__write_buildid_table(struct list_head *head,
 		if (!pos->hit)
 			continue;
 
-		if (is_vdso_map(pos->short_name)) {
-			name = (char *) VDSO__MAP_NAME;
-			name_len = sizeof(VDSO__MAP_NAME) + 1;
+		if (dso__is_vdso(pos)) {
+			name = pos->short_name;
+			name_len = pos->short_name_len + 1;
 		} else if (dso__is_kcore(pos)) {
 			machine__mmap_name(machine, nm, sizeof(nm));
 			name = nm;
@@ -339,7 +339,7 @@ int build_id_cache__add_s(const char *sbuild_id, const char *debugdir,
 
 	len = scnprintf(filename, size, "%s%s%s",
 		       debugdir, slash ? "/" : "",
-		       is_vdso ? VDSO__MAP_NAME : realname);
+		       is_vdso ? DSO__NAME_VDSO : realname);
 	if (mkdir_p(filename, 0755))
 		goto out_free;
 
@@ -427,7 +427,7 @@ static int dso__cache_build_id(struct dso *dso, struct machine *machine,
 			       const char *debugdir)
 {
 	bool is_kallsyms = dso->kernel && dso->long_name[0] != '/';
-	bool is_vdso = is_vdso_map(dso->short_name);
+	bool is_vdso = dso__is_vdso(dso);
 	const char *name = dso->long_name;
 	char nm[PATH_MAX];
 
diff --git a/tools/perf/util/symbol-elf.c b/tools/perf/util/symbol-elf.c
index cef8f426356e..61b9cd456310 100644
--- a/tools/perf/util/symbol-elf.c
+++ b/tools/perf/util/symbol-elf.c
@@ -622,7 +622,7 @@ int symsrc__init(struct symsrc *ss, struct dso *dso, const char *name,
 		GElf_Shdr shdr;
 		ss->adjust_symbols = (ehdr.e_type == ET_EXEC ||
 				ehdr.e_type == ET_REL ||
-				is_vdso_map(dso->short_name) ||
+				dso__is_vdso(dso) ||
 				elf_section_by_name(elf, &ehdr, &shdr,
 						     ".gnu.prelink_undo",
 						     NULL) != NULL);
diff --git a/tools/perf/util/vdso.c b/tools/perf/util/vdso.c
index 946d927765c6..a9300f83654b 100644
--- a/tools/perf/util/vdso.c
+++ b/tools/perf/util/vdso.c
@@ -33,7 +33,7 @@ static struct vdso_info *vdso_info__new(void)
 	static const struct vdso_info vdso_info_init = {
 		.vdso    = {
 			.temp_file_name = VDSO__TEMP_FILE_NAME,
-			.dso_name = VDSO__MAP_NAME,
+			.dso_name = DSO__NAME_VDSO,
 		},
 	};
 
@@ -147,7 +147,7 @@ struct dso *vdso__dso_findnew(struct machine *machine)
 	if (!vdso_info)
 		return NULL;
 
-	dso = dsos__find(&machine->user_dsos, VDSO__MAP_NAME, true);
+	dso = dsos__find(&machine->user_dsos, DSO__NAME_VDSO, true);
 	if (!dso) {
 		char *file;
 
@@ -155,8 +155,13 @@ struct dso *vdso__dso_findnew(struct machine *machine)
 		if (!file)
 			return NULL;
 
-		dso = vdso__new(machine, VDSO__MAP_NAME, file);
+		dso = vdso__new(machine, DSO__NAME_VDSO, file);
 	}
 
 	return dso;
 }
+
+bool dso__is_vdso(struct dso *dso)
+{
+	return !strcmp(dso->short_name, DSO__NAME_VDSO);
+}
diff --git a/tools/perf/util/vdso.h b/tools/perf/util/vdso.h
index 7cf1576863a4..be3eb4324c1e 100644
--- a/tools/perf/util/vdso.h
+++ b/tools/perf/util/vdso.h
@@ -7,11 +7,17 @@
 
 #define VDSO__MAP_NAME "[vdso]"
 
+#define DSO__NAME_VDSO "[vdso]"
+
 static inline bool is_vdso_map(const char *filename)
 {
 	return !strcmp(filename, VDSO__MAP_NAME);
 }
 
+struct dso;
+
+bool dso__is_vdso(struct dso *dso);
+
 struct machine;
 
 struct dso *vdso__dso_findnew(struct machine *machine);
-- 
1.9.3


  parent reply	other threads:[~2014-07-25 15:38 UTC|newest]

Thread overview: 33+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2014-07-25 15:36 [GIT PULL 00/27] perf/core improvements and fixes Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 01/27] perf tools: Fix incorrect fd error comparison Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 02/27] perf tools: Fix jump label always changing during tracing Arnaldo Carvalho de Melo
2014-07-28  6:58   ` Peter Zijlstra
2014-07-28  8:19     ` Jiri Olsa
2014-07-28 10:49       ` Ingo Molnar
2014-07-30 12:55     ` [tip:perf/core] Revert "perf tools: Fix jump label always changing during tracing" tip-bot for Jiri Olsa
2014-07-25 15:36 ` [PATCH 03/27] perf script: Improve srcline display for BTS Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 04/27] perf script: Do not print dangling '=>' " Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 05/27] perf tools: Record whether a dso has data Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 06/27] perf tools: Add dso__data_status_seen() Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 07/27] perf tools: Add dsos__hit_all() Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 08/27] perf tools: Add cpu to struct thread Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 09/27] perf machine: Add ability to record the current tid for each cpu Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 10/27] perf tools: Move rdtsc() function Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 11/27] perf tools: Add dso__data_size() Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 12/27] perf tools: Pass machine to vdso__dso_findnew() Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 13/27] perf session: Add ability to 'skip' a non-piped event stream Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 14/27] perf session: Add ability to skip 4GiB or more Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 15/27] perf tools: Group VDSO global variables into a structure Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 16/27] perf machine: Fix the lifetime of the VDSO temporary file Arnaldo Carvalho de Melo
2014-07-25 15:36 ` [PATCH 17/27] perf tools: Add vdso__new() Arnaldo Carvalho de Melo
2014-07-25 15:37 ` Arnaldo Carvalho de Melo [this message]
2014-07-25 15:37 ` [PATCH 19/27] perf tools: Add dso__type() Arnaldo Carvalho de Melo
2014-07-25 15:37 ` [PATCH 20/27] perf tools: Add thread parameter to vdso__dso_findnew() Arnaldo Carvalho de Melo
2014-07-25 15:37 ` [PATCH 21/27] perf tools: Fix build on gcc 4.4.7 Arnaldo Carvalho de Melo
2014-07-25 15:37 ` [PATCH 22/27] perf powerpc: Include util/util.h and remove stringify macros Arnaldo Carvalho de Melo
2014-07-25 15:37 ` [PATCH 23/27] perf session: Fix accounting of ordered samples queue Arnaldo Carvalho de Melo
2014-07-25 15:37 ` [PATCH 24/27] perf tools: Expose 'addr' functions so they can be reused Arnaldo Carvalho de Melo
2014-07-25 15:37 ` [PATCH 25/27] perf inject: Add --kallsyms parameter Arnaldo Carvalho de Melo
2014-07-25 15:37 ` [PATCH 26/27] perf record: Always force PERF_RECORD_FINISHED_ROUND event Arnaldo Carvalho de Melo
2014-07-25 15:37 ` [PATCH 27/27] perf record: Store PERF_RECORD_FINISHED_ROUND only for nonempty rounds Arnaldo Carvalho de Melo
2014-07-28  8:10 ` [GIT PULL 00/27] perf/core improvements and fixes Ingo Molnar

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=1406302629-11790-19-git-send-email-acme@kernel.org \
    --to=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=adrian.hunter@intel.com \
    --cc=dsahern@gmail.com \
    --cc=eranian@google.com \
    --cc=fweisbec@gmail.com \
    --cc=jolsa@redhat.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@gmail.com \
    --cc=paulus@samba.org \
    --cc=peterz@infradead.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox

Powered by JetHome