All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>, Thomas Gleixner <tglx@linutronix.de>
Cc: Jiri Olsa <jolsa@kernel.org>, Namhyung Kim <namhyung@kernel.org>,
	Clark Williams <williams@redhat.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Ravi Bangoria <ravi.bangoria@linux.ibm.com>,
	Kim Phillips <kim.phillips@amd.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Michael Petlan <mpetlan@redhat.com>,
	Peter Zijlstra <peterz@infradead.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 08/23] perf maps: Move kmap::kmaps setup to maps__insert()
Date: Fri, 14 Feb 2020 16:10:42 -0300	[thread overview]
Message-ID: <20200214191057.26266-9-acme@kernel.org> (raw)
In-Reply-To: <20200214191057.26266-1-acme@kernel.org>

From: Jiri Olsa <jolsa@kernel.org>

So the kmaps pointer setup is centralized and we do not need to update
it in all those places (2 current places and few more missing) after
calling maps__insert().

Reported-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Signed-off-by: Jiri Olsa <jolsa@kernel.org>
Tested-by: Ravi Bangoria <ravi.bangoria@linux.ibm.com>
Tested-by: Kim Phillips <kim.phillips@amd.com>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Michael Petlan <mpetlan@redhat.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lore.kernel.org/lkml/20200210143218.24948-5-jolsa@kernel.org
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/machine.c | 13 +------------
 tools/perf/util/map.c     | 10 ++++++++++
 2 files changed, 11 insertions(+), 12 deletions(-)

diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index 0ad026561c7f..fb5c2cd44d30 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -981,7 +981,6 @@ int machine__create_extra_kernel_map(struct machine *machine,
 
 	kmap = map__kmap(map);
 
-	kmap->kmaps = &machine->kmaps;
 	strlcpy(kmap->name, xm->name, KMAP_NAME_LEN);
 
 	maps__insert(&machine->kmaps, map);
@@ -1091,9 +1090,6 @@ int __weak machine__create_extra_kernel_maps(struct machine *machine __maybe_unu
 static int
 __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
 {
-	struct kmap *kmap;
-	struct map *map;
-
 	/* In case of renewal the kernel map, destroy previous one */
 	machine__destroy_kernel_maps(machine);
 
@@ -1102,14 +1098,7 @@ __machine__create_kernel_maps(struct machine *machine, struct dso *kernel)
 		return -1;
 
 	machine->vmlinux_map->map_ip = machine->vmlinux_map->unmap_ip = identity__map_ip;
-	map = machine__kernel_map(machine);
-	kmap = map__kmap(map);
-	if (!kmap)
-		return -1;
-
-	kmap->kmaps = &machine->kmaps;
-	maps__insert(&machine->kmaps, map);
-
+	maps__insert(&machine->kmaps, machine->vmlinux_map);
 	return 0;
 }
 
diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index cea05fc9595c..a08ca276098e 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -543,6 +543,16 @@ void maps__insert(struct maps *maps, struct map *map)
 	__maps__insert(maps, map);
 	++maps->nr_maps;
 
+	if (map->dso && map->dso->kernel) {
+		struct kmap *kmap = map__kmap(map);
+
+		if (kmap)
+			kmap->kmaps = maps;
+		else
+			pr_err("Internal error: kernel dso with non kernel map\n");
+	}
+
+
 	/*
 	 * If we already performed some search by name, then we need to add the just
 	 * inserted map and resort.
-- 
2.21.1

  parent reply	other threads:[~2020-02-14 19:10 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2020-02-14 19:10 [GIT PULL] perf/urgent improvements and fixes Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 01/23] perf stat: Don't report a null stalled cycles per insn metric Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 02/23] perf symbols: Update the list of kernel idle symbols Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 03/23] perf symbols: Convert symbol__is_idle() to use strlist Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 04/23] tools include UAPI: Sync x86's syscalls_64.tbl, generic unistd.h and fcntl.h to pick up openat2 and pidfd_getfd Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 05/23] perf maps: Mark module DSOs with kernel type Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 06/23] perf maps: Mark ksymbol " Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 07/23] perf maps: Fix map__clone() for struct kmap Arnaldo Carvalho de Melo
2020-02-14 19:10 ` Arnaldo Carvalho de Melo [this message]
2020-02-14 19:10 ` [PATCH 09/23] tools headers UAPI: Sync copy of arm64's asm/unistd.h with the kernel sources Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 10/23] tools headers UAPI: Sync prctl.h " Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 11/23] perf beauty prctl: Export the 'options' strarray Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 12/23] perf trace: Resolve prctl's 'option' arg strings to numbers Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 13/23] tools headers UAPI: Sync sched.h with the kernel Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 14/23] tools headers uapi: Sync linux/fscrypt.h with the kernel sources Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 15/23] tools headers UAPI: Sync drm/i915_drm.h " Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 16/23] perf tools: Add arm64 version of get_cpuid() Arnaldo Carvalho de Melo
2020-02-14 19:10   ` Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 17/23] tools headers UAPI: Sync asm-generic/mman-common.h with the kernel Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 18/23] tools include UAPI: Sync sound/asound.h copy Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 19/23] tools headers x86: Sync disabled-features.h Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 20/23] tools arch x86: Sync asm/cpufeatures.h with the kernel sources Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 21/23] tools headers kvm: Sync kvm headers " Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 22/23] tools headers kvm: Sync linux/kvm.h " Arnaldo Carvalho de Melo
2020-02-14 19:10 ` [PATCH 23/23] perf llvm: Fix script used to obtain kernel make directives to work with new kbuild Arnaldo Carvalho de Melo
2020-02-15  8:36 ` [GIT PULL] perf/urgent 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=20200214191057.26266-9-acme@kernel.org \
    --to=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=jolsa@kernel.org \
    --cc=kim.phillips@amd.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=mpetlan@redhat.com \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --cc=ravi.bangoria@linux.ibm.com \
    --cc=tglx@linutronix.de \
    --cc=williams@redhat.com \
    /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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.