Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752218AbdIRIi1 (ORCPT ); Mon, 18 Sep 2017 04:38:27 -0400 Received: from mx1.redhat.com ([209.132.183.28]:56786 "EHLO mx1.redhat.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750783AbdIRIi0 (ORCPT ); Mon, 18 Sep 2017 04:38:26 -0400 DMARC-Filter: OpenDMARC Filter v1.3.2 mx1.redhat.com 2A3B9883BA Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; dmarc=none (p=none dis=none) header.from=redhat.com Authentication-Results: ext-mx02.extmail.prod.ext.phx2.redhat.com; spf=fail smtp.mailfrom=jolsa@redhat.com Date: Mon, 18 Sep 2017 10:38:23 +0200 From: Jiri Olsa To: Arnaldo Carvalho de Melo Cc: =?iso-8859-1?Q?Fr=E9d=E9ric?= Weisbecker , kan.liang@intel.com, peterz@infradead.org, mingo@redhat.com, linux-kernel@vger.kernel.org, jolsa@kernel.org, namhyung@kernel.org, adrian.hunter@intel.com, lukasz.odzioba@intel.com, ak@linux.intel.com Subject: Re: [PATCH RFC V2 03/10] petf tools: using comm_str to replace comm in hist_entry Message-ID: <20170918083823.GA17203@krava> References: <1505096603-215017-1-git-send-email-kan.liang@intel.com> <1505096603-215017-4-git-send-email-kan.liang@intel.com> <20170913152156.GI5866@kernel.org> MIME-Version: 1.0 Content-Type: text/plain; charset=iso-8859-1 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20170913152156.GI5866@kernel.org> User-Agent: Mutt/1.9.0 (2017-09-02) X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.26]); Mon, 18 Sep 2017 08:38:26 +0000 (UTC) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 3641 Lines: 101 On Wed, Sep 13, 2017 at 12:21:56PM -0300, Arnaldo Carvalho de Melo wrote: > Em Sun, Sep 10, 2017 at 07:23:16PM -0700, kan.liang@intel.com escreveu: > > From: Kan Liang > > > > For hist_entry, it only needs comm_str for cmp. > > And thinking a bit more, isn't this even a bug fix, as at the time of > that sample that was the comm string associated with that thread? > > Fr?d?ric, am I nutz? I think it's ok, because struct comm holds just one comm string which is 'correct/accurate' at the time the hist entry is created this patch just seems to switch comm pointer with comm string pointer, I'm guessing it's useful in follow up patches jirka > > - Arnaldo > > > Signed-off-by: Kan Liang > > --- > > tools/perf/util/hist.c | 4 ++-- > > tools/perf/util/sort.c | 8 ++++---- > > tools/perf/util/sort.h | 2 +- > > 3 files changed, 7 insertions(+), 7 deletions(-) > > > > diff --git a/tools/perf/util/hist.c b/tools/perf/util/hist.c > > index e60d8d8..0f00dd9 100644 > > --- a/tools/perf/util/hist.c > > +++ b/tools/perf/util/hist.c > > @@ -587,7 +587,7 @@ __hists__add_entry(struct hists *hists, > > struct namespaces *ns = thread__namespaces(al->thread); > > struct hist_entry entry = { > > .thread = al->thread, > > - .comm = thread__comm(al->thread), > > + .comm_str = thread__comm_str(al->thread), > > .cgroup_id = { > > .dev = ns ? ns->link_info[CGROUP_NS_INDEX].dev : 0, > > .ino = ns ? ns->link_info[CGROUP_NS_INDEX].ino : 0, > > @@ -944,7 +944,7 @@ iter_add_next_cumulative_entry(struct hist_entry_iter *iter, > > .hists = evsel__hists(evsel), > > .cpu = al->cpu, > > .thread = al->thread, > > - .comm = thread__comm(al->thread), > > + .comm_str = thread__comm_str(al->thread), > > .ip = al->addr, > > .ms = { > > .map = al->map, > > diff --git a/tools/perf/util/sort.c b/tools/perf/util/sort.c > > index eb3ab90..99ab411 100644 > > --- a/tools/perf/util/sort.c > > +++ b/tools/perf/util/sort.c > > @@ -114,26 +114,26 @@ static int64_t > > sort__comm_cmp(struct hist_entry *left, struct hist_entry *right) > > { > > /* Compare the addr that should be unique among comm */ > > - return strcmp(comm__str(right->comm), comm__str(left->comm)); > > + return strcmp(right->comm_str, left->comm_str); > > } > > > > static int64_t > > sort__comm_collapse(struct hist_entry *left, struct hist_entry *right) > > { > > /* Compare the addr that should be unique among comm */ > > - return strcmp(comm__str(right->comm), comm__str(left->comm)); > > + return strcmp(right->comm_str, left->comm_str); > > } > > > > static int64_t > > sort__comm_sort(struct hist_entry *left, struct hist_entry *right) > > { > > - return strcmp(comm__str(right->comm), comm__str(left->comm)); > > + return strcmp(right->comm_str, left->comm_str); > > } > > > > static int hist_entry__comm_snprintf(struct hist_entry *he, char *bf, > > size_t size, unsigned int width) > > { > > - return repsep_snprintf(bf, size, "%-*.*s", width, width, comm__str(he->comm)); > > + return repsep_snprintf(bf, size, "%-*.*s", width, width, he->comm_str); > > } > > > > struct sort_entry sort_comm = { > > diff --git a/tools/perf/util/sort.h b/tools/perf/util/sort.h > > index f36dc49..861cbe7 100644 > > --- a/tools/perf/util/sort.h > > +++ b/tools/perf/util/sort.h > > @@ -96,7 +96,7 @@ struct hist_entry { > > struct he_stat *stat_acc; > > struct map_symbol ms; > > struct thread *thread; > > - struct comm *comm; > > + const char *comm_str; > > struct namespace_id cgroup_id; > > u64 ip; > > u64 transaction; > > -- > > 2.5.5