linux-perf-users.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Ingo Molnar <mingo@kernel.org>
Cc: Clark Williams <williams@redhat.com>,
	linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org,
	Eric Saint-Etienne <eric.saint.etienne@oracle.com>,
	Alexander Shishkin <alexander.shishkin@linux.intel.com>,
	Eric Saint-Etienne <eric.saintetienne@gmail.com>,
	Namhyung Kim <namhyung@kernel.org>,
	Peter Zijlstra <peterz@infradead.org>,
	Arnaldo Carvalho de Melo <acme@redhat.com>
Subject: [PATCH 04/22] perf map: Remove extra indirection from map__find()
Date: Fri, 30 Nov 2018 15:26:34 -0300	[thread overview]
Message-ID: <20181130182652.23620-5-acme@kernel.org> (raw)
In-Reply-To: <20181130182652.23620-1-acme@kernel.org>

From: Eric Saint-Etienne <eric.saint.etienne@oracle.com>

A double pointer is used in map__find() where a single pointer is enough
because the function doesn't affect the rbtree and the rbtree is locked.

Signed-off-by: Eric Saint-Etienne <eric.saint.etienne@oracle.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Alexander Shishkin <alexander.shishkin@linux.intel.com>
Cc: Eric Saint-Etienne <eric.saintetienne@gmail.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Link: http://lkml.kernel.org/r/1542969759-24346-1-git-send-email-eric.saint.etienne@oracle.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
 tools/perf/util/map.c | 13 ++++++-------
 1 file changed, 6 insertions(+), 7 deletions(-)

diff --git a/tools/perf/util/map.c b/tools/perf/util/map.c
index 781eed8e3265..a0d58b4d9c32 100644
--- a/tools/perf/util/map.c
+++ b/tools/perf/util/map.c
@@ -873,19 +873,18 @@ void maps__remove(struct maps *maps, struct map *map)
 
 struct map *maps__find(struct maps *maps, u64 ip)
 {
-	struct rb_node **p, *parent = NULL;
+	struct rb_node *p;
 	struct map *m;
 
 	down_read(&maps->lock);
 
-	p = &maps->entries.rb_node;
-	while (*p != NULL) {
-		parent = *p;
-		m = rb_entry(parent, struct map, rb_node);
+	p = maps->entries.rb_node;
+	while (p != NULL) {
+		m = rb_entry(p, struct map, rb_node);
 		if (ip < m->start)
-			p = &(*p)->rb_left;
+			p = p->rb_left;
 		else if (ip >= m->end)
-			p = &(*p)->rb_right;
+			p = p->rb_right;
 		else
 			goto out;
 	}
-- 
2.19.1

  parent reply	other threads:[~2018-11-30 18:26 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-11-30 18:26 [GIT PULL 00/22] perf/core improvements and fixes Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 01/22] perf build: Give better hint about devel package for libssl Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 02/22] perf stat: Fix shadow stats for clock events Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 03/22] perf stat: Fix CSV mode column output for non-cgroup events Arnaldo Carvalho de Melo
2018-11-30 18:26 ` Arnaldo Carvalho de Melo [this message]
2018-11-30 18:26 ` [PATCH 05/22] perf env: Also consider env->arch == NULL as local operation Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 06/22] perf machine: Record if a arch has a single user/kernel address space Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 07/22] perf thread: Add fallback functions for cases where cpumode is insufficient Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 08/22] perf tools: Use fallback for sample_addr_correlates_sym() cases Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 09/22] perf script: Use fallbacks for branch stacks Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 10/22] tools lib traceevent: Fix compile warnings in tools/lib/traceevent/event-parse.c Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 11/22] perf tests record: Allow for 'sleep' being 'coreutils' Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 12/22] perf test: Fix perf_event_attr test failure Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 13/22] tools include: Adopt ERR_CAST() from the kernel err.h header Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 14/22] perf bpf: Use ERR_CAST instead of ERR_PTR(PTR_ERR()) Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 15/22] perf top: Allow passing a kallsyms file Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 16/22] perf intel-pt: Fix error with config term "pt=0" Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 17/22] tools build feature: Check if libaio is available Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 18/22] perf mmap: Map data buffer for preserving collected data Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 19/22] perf record: Enable asynchronous trace writing Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 20/22] perf record: Extend trace writing to multi AIO Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 21/22] perf beauty mmap_flags: Check if the arch has a mmap.h file Arnaldo Carvalho de Melo
2018-11-30 18:26 ` [PATCH 22/22] tools lib traceevent: Add sanity check to is_timestamp_in_us() Arnaldo Carvalho de Melo

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=20181130182652.23620-5-acme@kernel.org \
    --to=acme@kernel.org \
    --cc=acme@redhat.com \
    --cc=alexander.shishkin@linux.intel.com \
    --cc=eric.saint.etienne@oracle.com \
    --cc=eric.saintetienne@gmail.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-perf-users@vger.kernel.org \
    --cc=mingo@kernel.org \
    --cc=namhyung@kernel.org \
    --cc=peterz@infradead.org \
    --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 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).