All of lore.kernel.org
 help / color / mirror / Atom feed
From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: "Liang, Kan" <kan.liang@intel.com>
Cc: "peterz@infradead.org" <peterz@infradead.org>,
	"mingo@redhat.com" <mingo@redhat.com>,
	"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
	"jolsa@kernel.org" <jolsa@kernel.org>,
	"namhyung@kernel.org" <namhyung@kernel.org>,
	"Hunter, Adrian" <adrian.hunter@intel.com>,
	"Odzioba, Lukasz" <lukasz.odzioba@intel.com>,
	"ak@linux.intel.com" <ak@linux.intel.com>
Subject: Re: [PATCH RFC V2 00/10] perf top optimization
Date: Fri, 15 Sep 2017 14:26:26 -0300	[thread overview]
Message-ID: <20170915172625.GA14469@kernel.org> (raw)
In-Reply-To: <37D7C6CF3E00A74B8858931C1DB2F077537BF0A8@SHSMSX103.ccr.corp.intel.com>

Em Fri, Sep 15, 2017 at 03:11:51PM +0000, Liang, Kan escreveu:
> > Em Wed, Sep 13, 2017 at 12:38:19PM -0300, Arnaldo Carvalho de Melo
> > escreveu:
> > > Em Wed, Sep 13, 2017 at 03:29:44PM +0000, Liang, Kan escreveu:
> > > > >
> > > > > Em Sun, Sep 10, 2017 at 07:23:13PM -0700, kan.liang@intel.com
> > escreveu:
> > > > >
> > > > > So I got the first two patches already merged, and made some
> > > > > comments about the other patches, please check those,
> > > > >
> > > >
> > > > Thanks for the review Arnaldo.
> > > >
> > > > I will take a close look for the comments.
> > > > For the next version, I only need to include patch 3-10, correct?
> > >
> > > Right, and go from my perf/core branch. The hashtable patch is still
> > > not there as I am running tests before pushing out, but it should be
> > > there later today.
> > 
> > So, its at my repo, branch tmp.perf/threads_hashtable
> > 
> > But 'perf trace' is broken, please take a look below:
> > 
> > [root@jouet ~]# gdb -c core
> > GNU gdb (GDB) Fedora 8.0-20.fc26
> > <SNIP>
> > Core was generated by `perf trace -e block:block_bio_queue'.
> > Program terminated with signal SIGSEGV, Segmentation fault.
> > #0  0x000000000051089a in ?? ()
> > (gdb) file perf
> > Reading symbols from perf...done.
> > (gdb) bt
> > #0  0x000000000051089a in ____machine__findnew_thread
> > (machine=0x3dfcab0, threads=0x3dfca78, pid=-1, tid=-1, create=false) at
> > util/machine.c:429
> 
> I think the root cause is tid==-1. So the index of hashtable will be -1.
> The patch as below should fix it.
> 
> diff --git a/tools/perf/util/machine.h b/tools/perf/util/machine.h
> index e6d5381..3c564b8 100644
> --- a/tools/perf/util/machine.h
> +++ b/tools/perf/util/machine.h
> @@ -57,7 +57,7 @@ struct machine {
>  
>  static inline struct threads *machine__threads(struct machine *machine, pid_t tid)
>  {
> -	return &machine->threads[tid % THREADS__TABLE_SIZE];
> +	return &machine->threads[(unsigned int)tid % THREADS__TABLE_SIZE];
>  }
>  
>  static inline
> 
> 
> There should be another issue which was introduced by  
> 33013b9a5607 ("perf machine: Optimize a bit the machine__findnew_thread() methods")
> It should use tid not pid to get the threads.
> 
> diff --git a/tools/perf/util/machine.c b/tools/perf/util/machine.c
> index 90ae9c7..ddeea05 100644
> --- a/tools/perf/util/machine.c
> +++ b/tools/perf/util/machine.c
> @@ -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, machine__threads(machine, pid), pid, tid, true);
> +	return ____machine__findnew_thread(machine, machine__threads(machine, tid), pid, tid, true);
>  }
> 
> They are small fixes. I think it's better to merge them with the old patches.
> Should I include the modified hashtable patches in V3?

I'll add these now and test, then push another branch, ok?

- Arnaldo

  reply	other threads:[~2017-09-15 17:26 UTC|newest]

Thread overview: 37+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-09-11  2:23 [PATCH RFC V2 00/10] perf top optimization kan.liang
2017-09-11  2:23 ` [PATCH RFC V2 01/10] perf tools: hashtable for machine threads kan.liang
2017-09-13 13:29   ` Arnaldo Carvalho de Melo
2017-09-22 16:42   ` [tip:perf/core] perf machine: Use " tip-bot for Kan Liang
2017-09-11  2:23 ` [PATCH RFC V2 02/10] perf tools: using scandir to replace readdir kan.liang
2017-09-13 15:19   ` Arnaldo Carvalho de Melo
2017-09-11  2:23 ` [PATCH RFC V2 03/10] petf tools: using comm_str to replace comm in hist_entry kan.liang
2017-09-13 15:21   ` Arnaldo Carvalho de Melo
2017-09-18  8:38     ` Jiri Olsa
2017-09-11  2:23 ` [PATCH RFC V2 04/10] petf tools: introduce a new function to set namespaces id kan.liang
2017-09-11  2:23 ` [PATCH RFC V2 05/10] perf tools: lock to protect thread list kan.liang
2017-09-18  8:50   ` Jiri Olsa
2017-09-18 16:18     ` Liang, Kan
2017-09-11  2:23 ` [PATCH RFC V2 06/10] perf tools: lock to protect comm_str rb tree kan.liang
2017-09-11  2:23 ` [PATCH RFC V2 07/10] perf tools: change machine comm_exec type to atomic kan.liang
2017-09-13 15:24   ` Arnaldo Carvalho de Melo
2017-09-15 20:05     ` Liang, Kan
2017-09-18 11:30       ` Jiri Olsa
2017-09-11  2:23 ` [PATCH RFC V2 08/10] perf top: implement multithreading for perf_event__synthesize_threads kan.liang
2017-09-18 11:24   ` Jiri Olsa
2017-09-11  2:23 ` [PATCH RFC V2 09/10] perf top: add option to set the number of thread for event synthesize kan.liang
2017-09-11  2:23 ` [PATCH RFC V2 10/10] perf top: switch back to overwrite mode kan.liang
2017-09-13 15:25 ` [PATCH RFC V2 00/10] perf top optimization Arnaldo Carvalho de Melo
2017-09-13 15:29   ` Liang, Kan
2017-09-13 15:38     ` Arnaldo Carvalho de Melo
2017-09-14 21:19       ` Arnaldo Carvalho de Melo
2017-09-15 15:11         ` Liang, Kan
2017-09-15 17:26           ` Arnaldo Carvalho de Melo [this message]
2017-09-15 17:29             ` Liang, Kan
2017-09-15 18:24               ` Arnaldo Carvalho de Melo
2017-09-15 18:26                 ` Liang, Kan
2017-09-18  8:57 ` Jiri Olsa
2017-09-18 13:01   ` Arnaldo Carvalho de Melo
2017-09-18 16:21     ` Liang, Kan
2017-09-19  8:19     ` Jiri Olsa
2017-09-19 12:39       ` Liang, Kan
2017-09-19 14:24         ` 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=20170915172625.GA14469@kernel.org \
    --to=acme@kernel.org \
    --cc=adrian.hunter@intel.com \
    --cc=ak@linux.intel.com \
    --cc=jolsa@kernel.org \
    --cc=kan.liang@intel.com \
    --cc=linux-kernel@vger.kernel.org \
    --cc=lukasz.odzioba@intel.com \
    --cc=mingo@redhat.com \
    --cc=namhyung@kernel.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 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.