Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751546AbeABHdr (ORCPT + 1 other); Tue, 2 Jan 2018 02:33:47 -0500 Received: from LGEAMRELO11.lge.com ([156.147.23.51]:45571 "EHLO lgeamrelo11.lge.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751254AbeABHdp (ORCPT ); Tue, 2 Jan 2018 02:33:45 -0500 X-Original-SENDERIP: 156.147.1.151 X-Original-MAILFROM: namhyung@kernel.org X-Original-SENDERIP: 10.177.227.17 X-Original-MAILFROM: namhyung@kernel.org Date: Tue, 2 Jan 2018 16:33:43 +0900 From: Namhyung Kim To: kan.liang@intel.com Cc: acme@kernel.org, peterz@infradead.org, mingo@redhat.com, linux-kernel@vger.kernel.org, wangnan0@huawei.com, jolsa@kernel.org, ak@linux.intel.com, yao.jin@linux.intel.com, kernel-team@lge.com Subject: Re: [PATCH V3 04/12] perf mmap: introduce perf_mmap__read_done Message-ID: <20180102073343.GA8810@sejong> References: <1513879734-237492-1-git-send-email-kan.liang@intel.com> <1513879734-237492-5-git-send-email-kan.liang@intel.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline In-Reply-To: <1513879734-237492-5-git-send-email-kan.liang@intel.com> User-Agent: Mutt/1.9.2 (2017-12-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Return-Path: Hello, On Thu, Dec 21, 2017 at 10:08:46AM -0800, kan.liang@intel.com wrote: > From: Kan Liang > > The direction of overwrite mode is backward. The last mmap__read_event > will set tail to map->prev. Need to correct the map->prev to head which > is the end of next read. Why do you update the map->prev needlessly then? I think we don't need it for overwrite/backward mode, right? Also I guess the current code might miss some events since the head can be different between _read_init() and _read_done(), no? Thanks, Namhyung > > It will be used later. > > Signed-off-by: Kan Liang > --- > tools/perf/util/mmap.c | 11 +++++++++++ > tools/perf/util/mmap.h | 1 + > 2 files changed, 12 insertions(+) > > diff --git a/tools/perf/util/mmap.c b/tools/perf/util/mmap.c > index a844a2f..4aaeb64 100644 > --- a/tools/perf/util/mmap.c > +++ b/tools/perf/util/mmap.c > @@ -343,3 +343,14 @@ int perf_mmap__push(struct perf_mmap *md, bool overwrite, > out: > return rc; > } > + > +/* > + * Mandatory for overwrite mode > + * The direction of overwrite mode is backward. > + * The last mmap__read_event will set tail to map->prev. > + * Need to correct the map->prev to head which is the end of next read. > + */ > +void perf_mmap__read_done(struct perf_mmap *map) > +{ > + map->prev = perf_mmap__read_head(map); > +} > diff --git a/tools/perf/util/mmap.h b/tools/perf/util/mmap.h > index abe9b9f..2df27c1 100644 > --- a/tools/perf/util/mmap.h > +++ b/tools/perf/util/mmap.h > @@ -96,4 +96,5 @@ size_t perf_mmap__mmap_len(struct perf_mmap *map); > > int perf_mmap__read_init(struct perf_mmap *map, bool overwrite, > u64 *start, u64 *end); > +void perf_mmap__read_done(struct perf_mmap *map); > #endif /*__PERF_MMAP_H */ > -- > 2.5.5 >