From: tip-bot for Kan Liang <tipbot@zytor.com>
To: linux-tip-commits@vger.kernel.org
Cc: namhyung@kernel.org, ak@linux.intel.com, hpa@zytor.com,
mingo@kernel.org, acme@redhat.com, wangnan0@huawei.com,
kan.liang@intel.com, linux-kernel@vger.kernel.org,
jolsa@kernel.org, tglx@linutronix.de, yao.jin@linux.intel.com,
peterz@infradead.org
Subject: [tip:perf/urgent] perf mmap: Discard legacy interface for mmap read
Date: Fri, 16 Feb 2018 01:38:43 -0800 [thread overview]
Message-ID: <tip-3effc2f165a842d640873e29d4c5cc1650143aef@git.kernel.org> (raw)
In-Reply-To: <1516310792-208685-11-git-send-email-kan.liang@intel.com>
Commit-ID: 3effc2f165a842d640873e29d4c5cc1650143aef
Gitweb: https://git.kernel.org/tip/3effc2f165a842d640873e29d4c5cc1650143aef
Author: Kan Liang <kan.liang@intel.com>
AuthorDate: Thu, 18 Jan 2018 13:26:25 -0800
Committer: Arnaldo Carvalho de Melo <acme@redhat.com>
CommitDate: Thu, 15 Feb 2018 09:54:17 -0300
perf mmap: Discard legacy interface for mmap read
Discards perf_mmap__read_backward() and perf_mmap__read_catchup(). No
tools use them.
There are tools still use perf_mmap__read_forward(). Keep it, but add
comments to point to the new interface for future use.
Signed-off-by: Kan Liang <kan.liang@intel.com>
Acked-by: Jiri Olsa <jolsa@kernel.org>
Cc: Andi Kleen <ak@linux.intel.com>
Cc: Jin Yao <yao.jin@linux.intel.com>
Cc: Namhyung Kim <namhyung@kernel.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Wang Nan <wangnan0@huawei.com>
Link: http://lkml.kernel.org/r/1516310792-208685-11-git-send-email-kan.liang@intel.com
Signed-off-by: Arnaldo Carvalho de Melo <acme@redhat.com>
---
tools/perf/util/mmap.c | 50 ++++----------------------------------------------
tools/perf/util/mmap.h | 3 ---
2 files changed, 4 insertions(+), 49 deletions(-)
diff --git a/tools/perf/util/mmap.c b/tools/perf/util/mmap.c
index f804926..91531a7 100644
--- a/tools/perf/util/mmap.c
+++ b/tools/perf/util/mmap.c
@@ -63,6 +63,10 @@ static union perf_event *perf_mmap__read(struct perf_mmap *map,
return event;
}
+/*
+ * legacy interface for mmap read.
+ * Don't use it. Use perf_mmap__read_event().
+ */
union perf_event *perf_mmap__read_forward(struct perf_mmap *map)
{
u64 head;
@@ -78,41 +82,6 @@ union perf_event *perf_mmap__read_forward(struct perf_mmap *map)
return perf_mmap__read(map, &map->prev, head);
}
-union perf_event *perf_mmap__read_backward(struct perf_mmap *map)
-{
- u64 head, end;
-
- /*
- * Check if event was unmapped due to a POLLHUP/POLLERR.
- */
- if (!refcount_read(&map->refcnt))
- return NULL;
-
- head = perf_mmap__read_head(map);
- if (!head)
- return NULL;
-
- /*
- * 'head' pointer starts from 0. Kernel minus sizeof(record) form
- * it each time when kernel writes to it, so in fact 'head' is
- * negative. 'end' pointer is made manually by adding the size of
- * the ring buffer to 'head' pointer, means the validate data can
- * read is the whole ring buffer. If 'end' is positive, the ring
- * buffer has not fully filled, so we must adjust 'end' to 0.
- *
- * However, since both 'head' and 'end' is unsigned, we can't
- * simply compare 'end' against 0. Here we compare '-head' and
- * the size of the ring buffer, where -head is the number of bytes
- * kernel write to the ring buffer.
- */
- if (-head < (u64)(map->mask + 1))
- end = 0;
- else
- end = head + map->mask + 1;
-
- return perf_mmap__read(map, &map->prev, end);
-}
-
/*
* Read event from ring buffer one by one.
* Return one event for each call.
@@ -152,17 +121,6 @@ union perf_event *perf_mmap__read_event(struct perf_mmap *map,
return event;
}
-void perf_mmap__read_catchup(struct perf_mmap *map)
-{
- u64 head;
-
- if (!refcount_read(&map->refcnt))
- return;
-
- head = perf_mmap__read_head(map);
- map->prev = head;
-}
-
static bool perf_mmap__empty(struct perf_mmap *map)
{
return perf_mmap__read_head(map) == map->prev && !map->auxtrace_mmap.base;
diff --git a/tools/perf/util/mmap.h b/tools/perf/util/mmap.h
index 2871854..ec7d3a24 100644
--- a/tools/perf/util/mmap.h
+++ b/tools/perf/util/mmap.h
@@ -65,8 +65,6 @@ void perf_mmap__put(struct perf_mmap *map);
void perf_mmap__consume(struct perf_mmap *map, bool overwrite);
-void perf_mmap__read_catchup(struct perf_mmap *md);
-
static inline u64 perf_mmap__read_head(struct perf_mmap *mm)
{
struct perf_event_mmap_page *pc = mm->base;
@@ -87,7 +85,6 @@ static inline void perf_mmap__write_tail(struct perf_mmap *md, u64 tail)
}
union perf_event *perf_mmap__read_forward(struct perf_mmap *map);
-union perf_event *perf_mmap__read_backward(struct perf_mmap *map);
union perf_event *perf_mmap__read_event(struct perf_mmap *map,
bool overwrite,
next prev parent reply other threads:[~2018-02-16 9:49 UTC|newest]
Thread overview: 55+ messages / expand[flat|nested] mbox.gz Atom feed top
2018-01-18 21:26 [PATCH V5 00/17] perf top overwrite mode kan.liang
2018-01-18 21:26 ` [PATCH V5 01/17] perf evlist: remove stale mmap read for backward kan.liang
2018-02-13 12:04 ` [tip:perf/urgent] perf evlist: Remove " tip-bot for Kan Liang
2018-02-16 9:34 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 02/17] perf mmap: fix: recalculate size for overwrite mode kan.liang
2018-02-01 21:23 ` Arnaldo Carvalho de Melo
2018-02-01 21:55 ` Liang, Kan
2018-02-13 12:04 ` [tip:perf/urgent] perf mmap: Recalculate " tip-bot for Kan Liang
2018-02-16 9:34 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 03/17] perf mmap: cleanup perf_mmap__push() kan.liang
2018-02-13 12:05 ` [tip:perf/urgent] perf mmap: Cleanup perf_mmap__push() tip-bot for Kan Liang
2018-02-16 9:35 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 04/17] perf mmap: introduce perf_mmap__read_init() kan.liang
2018-02-13 12:05 ` [tip:perf/urgent] perf mmap: Introduce perf_mmap__read_init() tip-bot for Kan Liang
2018-02-16 9:35 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 05/17] perf mmap: add new return value logic for perf_mmap__read_init() kan.liang
2018-02-13 12:06 ` [tip:perf/urgent] perf mmap: Add " tip-bot for Kan Liang
2018-02-16 9:36 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 06/17] perf mmap: discard 'prev' in perf_mmap__read() kan.liang
2018-02-13 12:06 ` [tip:perf/urgent] perf mmap: Discard " tip-bot for Kan Liang
2018-02-16 9:36 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 07/17] perf mmap: introduce perf_mmap__read_done kan.liang
2018-02-13 12:07 ` [tip:perf/urgent] perf mmap: Introduce perf_mmap__read_done() tip-bot for Kan Liang
2018-02-16 9:37 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 08/17] perf mmap: introduce perf_mmap__read_event() kan.liang
2018-02-13 12:07 ` [tip:perf/urgent] perf mmap: Introduce perf_mmap__read_event() tip-bot for Kan Liang
2018-02-16 9:37 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 09/17] perf test: update mmap read functions for backward-ring-buffer test kan.liang
2018-02-13 12:07 ` [tip:perf/urgent] perf test: Update " tip-bot for Kan Liang
2018-02-16 9:38 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 10/17] perf mmap: discard legacy interface for mmap read kan.liang
2018-02-13 12:08 ` [tip:perf/urgent] perf mmap: Discard " tip-bot for Kan Liang
2018-02-16 9:38 ` tip-bot for Kan Liang [this message]
2018-01-18 21:26 ` [PATCH V5 11/17] perf top: check per-event overwrite term kan.liang
2018-02-13 12:08 ` [tip:perf/urgent] perf top: Check " tip-bot for Kan Liang
2018-02-16 9:39 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 12/17] perf evsel: expose perf_missing_features.write_backward kan.liang
2018-02-02 14:26 ` Arnaldo Carvalho de Melo
2018-02-02 14:53 ` Liang, Kan
2018-01-18 21:26 ` [PATCH V5 13/17] perf top: add overwrite fall back kan.liang
2018-02-13 12:09 ` [tip:perf/urgent] perf top: Add " tip-bot for Kan Liang
2018-02-16 9:40 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 14/17] perf hists browser: add parameter to disable lost event warning kan.liang
2018-02-13 12:10 ` [tip:perf/urgent] perf hists browser: Add " tip-bot for Kan Liang
2018-02-16 9:40 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 15/17] perf top: remove lost events checking kan.liang
2018-02-13 12:10 ` [tip:perf/urgent] perf top: Remove " tip-bot for Kan Liang
2018-02-16 9:41 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 16/17] perf top: switch default mode to overwrite mode kan.liang
2018-02-13 12:10 ` [tip:perf/urgent] perf top: Switch " tip-bot for Kan Liang
2018-02-16 9:41 ` tip-bot for Kan Liang
2018-01-18 21:26 ` [PATCH V5 17/17] perf top: check the latency of perf_top__mmap_read() kan.liang
2018-02-13 12:11 ` [tip:perf/urgent] perf top: Check " tip-bot for Kan Liang
2018-02-16 9:42 ` tip-bot for Kan Liang
2018-01-21 12:59 ` [PATCH V5 00/17] perf top overwrite mode Jiri Olsa
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=tip-3effc2f165a842d640873e29d4c5cc1650143aef@git.kernel.org \
--to=tipbot@zytor.com \
--cc=acme@redhat.com \
--cc=ak@linux.intel.com \
--cc=hpa@zytor.com \
--cc=jolsa@kernel.org \
--cc=kan.liang@intel.com \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-tip-commits@vger.kernel.org \
--cc=mingo@kernel.org \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--cc=tglx@linutronix.de \
--cc=wangnan0@huawei.com \
--cc=yao.jin@linux.intel.com \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.