linux-kernel.vger.kernel.org archive mirror
 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 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).