Em Fri, Mar 14, 2014 at 03:00:05PM +0100, Jiri Olsa escreveu:
> Need machine pointer in thread object, so we could
> lookup the process thread in following patch.

Can't we use the already existing thread->mg.machine for that?

- Arnaldo
 
> Signed-off-by: Jiri Olsa <jo...@redhat.com>
> Cc: Don Zickus <dzic...@redhat.com>
> Cc: Corey Ashford <cjash...@linux.vnet.ibm.com>
> Cc: David Ahern <dsah...@gmail.com>
> Cc: Frederic Weisbecker <fweis...@gmail.com>
> Cc: Ingo Molnar <mi...@kernel.org>
> Cc: Namhyung Kim <namhy...@kernel.org>
> Cc: Paul Mackerras <pau...@samba.org>
> Cc: Peter Zijlstra <a.p.zijls...@chello.nl>
> Cc: Arnaldo Carvalho de Melo <a...@ghostprotocols.net>
> ---
>  tools/perf/util/machine.c | 2 +-
>  tools/perf/util/thread.c  | 4 +++-
>  tools/perf/util/thread.h  | 5 ++++-
>  3 files changed, 8 insertions(+), 3 deletions(-)
> 
> diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
> index 009dfb4..6196bb9 100644
> --- a/tools/perf/util/machine.c
> +++ b/tools/perf/util/machine.c
> @@ -311,7 +311,7 @@ static struct thread *__machine__findnew_thread(struct 
> machine *machine,
>       if (!create)
>               return NULL;
>  
> -     th = thread__new(pid, tid);
> +     th = thread__new(pid, tid, machine);
>       if (th != NULL) {
>               rb_link_node(&th->rb_node, parent, p);
>               rb_insert_color(&th->rb_node, &machine->threads);
> diff --git a/tools/perf/util/thread.c b/tools/perf/util/thread.c
> index ac77b6c..7c1aad0 100644
> --- a/tools/perf/util/thread.c
> +++ b/tools/perf/util/thread.c
> @@ -8,13 +8,15 @@
>  #include "debug.h"
>  #include "comm.h"
>  
> -struct thread *thread__new(pid_t pid, pid_t tid)
> +struct thread *thread__new(pid_t pid, pid_t tid,
> +                        struct machine *machine)
>  {
>       char *comm_str;
>       struct comm *comm;
>       struct thread *thread = zalloc(sizeof(*thread));
>  
>       if (thread != NULL) {
> +             thread->machine = machine;
>               thread->pid_ = pid;
>               thread->tid = tid;
>               thread->ppid = -1;
> diff --git a/tools/perf/util/thread.h b/tools/perf/util/thread.h
> index 77d0be2..2200557 100644
> --- a/tools/perf/util/thread.h
> +++ b/tools/perf/util/thread.h
> @@ -7,12 +7,14 @@
>  #include <sys/types.h>
>  #include "symbol.h"
>  #include <strlist.h>
> +#include "machine.h"
>  
>  struct thread {
>       union {
>               struct rb_node   rb_node;
>               struct list_head node;
>       };
> +     struct machine          *machine;
>       struct map_groups       *mg;
>       pid_t                   pid_; /* Not all tools update this */
>       pid_t                   tid;
> @@ -29,7 +31,8 @@ struct thread {
>  struct machine;
>  struct comm;
>  
> -struct thread *thread__new(pid_t pid, pid_t tid);
> +struct thread *thread__new(pid_t pid, pid_t tid,
> +                        struct machine *machine);
>  void thread__delete(struct thread *thread);
>  static inline void thread__exited(struct thread *thread)
>  {
> -- 
> 1.8.3.1
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to