Commit-ID:  75e45e432052c7b1a5da866cff88192db8be1445
Gitweb:     http://git.kernel.org/tip/75e45e432052c7b1a5da866cff88192db8be1445
Author:     Arnaldo Carvalho de Melo <[email protected]>
AuthorDate: Thu, 14 Sep 2017 16:16:34 -0300
Committer:  Arnaldo Carvalho de Melo <[email protected]>
CommitDate: Mon, 18 Sep 2017 09:40:19 -0300

perf machine: Optimize a bit the machine__findnew_thread() methods

In some cases we already have calculated the hash bucket, so reuse it.

Cc: Adrian Hunter <[email protected]>
Cc: Andi Kleen <[email protected]>
Cc: David Ahern <[email protected]>
Cc: Jiri Olsa <[email protected]>
Cc: Kan Liang <[email protected]>
Cc: Lukasz Odzioba <[email protected]>
Cc: Namhyung Kim <[email protected]>
Cc: Peter Zijlstra <[email protected]>
Cc: Wang Nan <[email protected]>
Link: http://lkml.kernel.org/n/[email protected]
Signed-off-by: Arnaldo Carvalho de Melo <[email protected]>
---
 tools/perf/util/machine.c | 6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
index f4f9267..ddeea05 100644
--- a/tools/perf/util/machine.c
+++ b/tools/perf/util/machine.c
@@ -399,10 +399,10 @@ out_err:
  * lookup/new thread inserted.
  */
 static struct thread *____machine__findnew_thread(struct machine *machine,
+                                                 struct threads *threads,
                                                  pid_t pid, pid_t tid,
                                                  bool create)
 {
-       struct threads *threads = machine__threads(machine, tid);
        struct rb_node **p = &threads->entries.rb_node;
        struct rb_node *parent = NULL;
        struct thread *th;
@@ -473,7 +473,7 @@ static struct thread *____machine__findnew_thread(struct 
machine *machine,
 
 struct thread *__machine__findnew_thread(struct machine *machine, pid_t pid, 
pid_t tid)
 {
-       return ____machine__findnew_thread(machine, pid, tid, true);
+       return ____machine__findnew_thread(machine, machine__threads(machine, 
tid), pid, tid, true);
 }
 
 struct thread *machine__findnew_thread(struct machine *machine, pid_t pid,
@@ -495,7 +495,7 @@ struct thread *machine__find_thread(struct machine 
*machine, pid_t pid,
        struct thread *th;
 
        pthread_rwlock_rdlock(&threads->lock);
-       th =  ____machine__findnew_thread(machine, pid, tid, false);
+       th =  ____machine__findnew_thread(machine, threads, pid, tid, false);
        pthread_rwlock_unlock(&threads->lock);
        return th;
 }

Reply via email to