From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758164AbcEFGqo (ORCPT ); Fri, 6 May 2016 02:46:44 -0400 Received: from terminus.zytor.com ([198.137.202.10]:43106 "EHLO terminus.zytor.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1757933AbcEFGql (ORCPT ); Fri, 6 May 2016 02:46:41 -0400 Date: Thu, 5 May 2016 23:46:01 -0700 From: tip-bot for Wang Nan Message-ID: Cc: acme@redhat.com, peterz@infradead.org, wangnan0@huawei.com, hpa@zytor.com, tglx@linutronix.de, mingo@kernel.org, linux-kernel@vger.kernel.org, lizefan@huawei.com Reply-To: wangnan0@huawei.com, acme@redhat.com, peterz@infradead.org, linux-kernel@vger.kernel.org, lizefan@huawei.com, hpa@zytor.com, tglx@linutronix.de, mingo@kernel.org In-Reply-To: <1461723563-67451-3-git-send-email-wangnan0@huawei.com> References: <1461723563-67451-3-git-send-email-wangnan0@huawei.com> To: linux-tip-commits@vger.kernel.org Subject: [tip:perf/core] perf evlist: Rename variable in perf_mmap__read() Git-Commit-ID: b6b85dad30ad7e7394990e2317a780577974a4e6 X-Mailer: tip-git-log-daemon Robot-ID: Robot-Unsubscribe: Contact to get blacklisted from these emails MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Content-Type: text/plain; charset=UTF-8 Content-Disposition: inline Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Commit-ID: b6b85dad30ad7e7394990e2317a780577974a4e6 Gitweb: http://git.kernel.org/tip/b6b85dad30ad7e7394990e2317a780577974a4e6 Author: Wang Nan AuthorDate: Wed, 27 Apr 2016 02:19:21 +0000 Committer: Arnaldo Carvalho de Melo CommitDate: Thu, 5 May 2016 21:04:04 -0300 perf evlist: Rename variable in perf_mmap__read() In perf_mmap__read(), give better names to pointers. Original name 'old' and 'head' directly related to pointers in ring buffer control page. For backward ring buffer, the meaning of 'head' point is not 'the first byte of free space', but 'the first byte of the last record'. To reduce confusion, rename 'old' to 'start', 'head' to 'end'. 'start' -> 'end' is the direction the records should be read from. Change parameter order. Change 'overwrite' to 'check_messup'. When reading from 'head', no need to check messup for for backward ring buffer. Signed-off-by: Wang Nan Cc: Peter Zijlstra Cc: Zefan Li Cc: pi3orama@163.com Link: http://lkml.kernel.org/r/1461723563-67451-3-git-send-email-wangnan0@huawei.com Signed-off-by: Arnaldo Carvalho de Melo --- tools/perf/util/evlist.c | 29 +++++++++++++++-------------- 1 file changed, 15 insertions(+), 14 deletions(-) diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 96c7191..17cd014 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -679,30 +679,31 @@ static struct perf_evsel *perf_evlist__event2evsel(struct perf_evlist *evlist, return NULL; } +/* When check_messup is true, 'end' must points to a good entry */ static union perf_event * -perf_mmap__read(struct perf_mmap *md, bool overwrite, u64 head, - u64 old, u64 *prev) +perf_mmap__read(struct perf_mmap *md, bool check_messup, u64 start, + u64 end, u64 *prev) { unsigned char *data = md->base + page_size; union perf_event *event = NULL; - int diff = head - old; + int diff = end - start; - if (overwrite) { + if (check_messup) { /* * If we're further behind than half the buffer, there's a chance * the writer will bite our tail and mess up the samples under us. * - * If we somehow ended up ahead of the head, we got messed up. + * If we somehow ended up ahead of the 'end', we got messed up. * - * In either case, truncate and restart at head. + * In either case, truncate and restart at 'end'. */ if (diff > md->mask / 2 || diff < 0) { fprintf(stderr, "WARNING: failed to keep up with mmap data.\n"); /* - * head points to a known good entry, start there. + * 'end' points to a known good entry, start there. */ - old = head; + start = end; diff = 0; } } @@ -710,7 +711,7 @@ perf_mmap__read(struct perf_mmap *md, bool overwrite, u64 head, if (diff >= (int)sizeof(event->header)) { size_t size; - event = (union perf_event *)&data[old & md->mask]; + event = (union perf_event *)&data[start & md->mask]; size = event->header.size; if (size < sizeof(event->header) || diff < (int)size) { @@ -722,8 +723,8 @@ perf_mmap__read(struct perf_mmap *md, bool overwrite, u64 head, * Event straddles the mmap boundary -- header should always * be inside due to u64 alignment of output. */ - if ((old & md->mask) + size != ((old + size) & md->mask)) { - unsigned int offset = old; + if ((start & md->mask) + size != ((start + size) & md->mask)) { + unsigned int offset = start; unsigned int len = min(sizeof(*event), size), cpy; void *dst = md->event_copy; @@ -738,12 +739,12 @@ perf_mmap__read(struct perf_mmap *md, bool overwrite, u64 head, event = (union perf_event *) md->event_copy; } - old += size; + start += size; } broken_event: if (prev) - *prev = old; + *prev = start; return event; } @@ -762,7 +763,7 @@ union perf_event *perf_evlist__mmap_read(struct perf_evlist *evlist, int idx) head = perf_mmap__read_head(md); - return perf_mmap__read(md, evlist->overwrite, head, old, &md->prev); + return perf_mmap__read(md, evlist->overwrite, old, head, &md->prev); } static bool perf_mmap__empty(struct perf_mmap *md)