Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752355AbcDZNa3 (ORCPT ); Tue, 26 Apr 2016 09:30:29 -0400 Received: from mail.kernel.org ([198.145.29.136]:38543 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752322AbcDZNa1 (ORCPT ); Tue, 26 Apr 2016 09:30:27 -0400 Date: Tue, 26 Apr 2016 10:30:20 -0300 From: Arnaldo Carvalho de Melo To: Wang Nan Cc: linux-kernel@vger.kernel.org, Arnaldo Carvalho de Melo , Peter Zijlstra , Zefan Li , pi3orama@163.com Subject: Re: [PATCH 2/5] perf tools: Extract __perf_evlist__mmap_read() Message-ID: <20160426133019.GF16708@kernel.org> References: <1461637738-62722-1-git-send-email-wangnan0@huawei.com> <1461637738-62722-3-git-send-email-wangnan0@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1461637738-62722-3-git-send-email-wangnan0@huawei.com> X-Url: http://acmel.wordpress.com User-Agent: Mutt/1.5.24 (2015-08-30) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 2301 Lines: 74 Em Tue, Apr 26, 2016 at 02:28:55AM +0000, Wang Nan escreveu: > Extract event reader to __perf_evlist__mmap_read(). Future commit will > feed it with manually computed 'head' and 'old' pointers. > > Signed-off-by: Wang Nan > Cc: Arnaldo Carvalho de Melo > Cc: Peter Zijlstra > Cc: Zefan Li > Cc: pi3orama@163.com > --- > tools/perf/util/evlist.c | 40 +++++++++++++++++++++++++--------------- > 1 file changed, 25 insertions(+), 15 deletions(-) > > diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c > index 85271e5..3ee94b2 100644 > --- a/tools/perf/util/evlist.c > +++ b/tools/perf/util/evlist.c > @@ -679,24 +679,15 @@ static struct perf_evsel *perf_evlist__event2evsel(struct perf_evlist *evlist, > return NULL; > } > > -union perf_event *perf_evlist__mmap_read(struct perf_evlist *evlist, int idx) > +static union perf_event * > +__perf_evlist__mmap_read(struct perf_mmap *md, bool overwrite, u64 head, > + u64 old, u64 *prev) > { Ok, now this is not a perf_evlist method anymore, see the first parameter? It handles perf_mmap instances, so please rename it to: static union perf_event *perf_mmap__read(struct perf_mmap *md, bool overwrite, u64 head, u64 *prev) And thanks for leaving the renaming of those variables to the next patch, that eases reviewieng indeed. > - struct perf_mmap *md = &evlist->mmap[idx]; > - u64 head; > - u64 old = md->prev; > > +union perf_event *perf_evlist__mmap_read(struct perf_evlist *evlist, int idx) > +{ > + struct perf_mmap *md = &evlist->mmap[idx]; > + u64 head; > + u64 old = md->prev; > + > + if (!atomic_read(&md->refcnt)) > + return NULL; > + > + head = perf_mmap__read_head(md); > + > + return __perf_evlist__mmap_read(md, evlist->overwrite, head, > + old, &md->prev); See that perf_mmap__read_head()? It acts on a struct perf_mmap too, thus the prefix. This will end up as: head = perf_mmap__read_head(md); return perf_mmap__read(md, evlist->overwrite, head, old, &md->prev); And see below yet another perf_mmap method, perf_mmap__empty() Regards, - Arnaldo > +} > + > static bool perf_mmap__empty(struct perf_mmap *md) > { > return perf_mmap__read_head(md) == md->prev && !md->auxtrace_mmap.base; > -- > 1.8.3.4