From: kan.liang@intel.com
To: acme@kernel.org, peterz@infradead.org, mingo@redhat.com,
linux-kernel@vger.kernel.org
Cc: wangnan0@huawei.com, jolsa@kernel.org, namhyung@kernel.org,
ak@linux.intel.com, yao.jin@linux.intel.com,
Kan Liang <kan.liang@intel.com>
Subject: [PATCH V3 00/12] perf top overwrite mode
Date: Thu, 21 Dec 2017 10:08:42 -0800 [thread overview]
Message-ID: <1513879734-237492-1-git-send-email-kan.liang@intel.com> (raw)
From: Kan Liang <kan.liang@intel.com>
perf_top__mmap_read has severe performance issue in
Knights Landing/Mill, when monitoring in heavy load system. It costs
several minutes to finish, which is unacceptable.
Currently, perf top is non overwrite mode. For non overwrite mode, it
tries to read everything in the ringbuffer and doesn't pause the
ringbuffer. Once there are lots of samples delivered persistently,
the processing time could be very long. Also, the latest samples could
be lost when the ringbuffer is full.
It's better to change it to overwrite mode, which takes a snapshot for
the system by pausing the ringbuffer and could significantly reducing
the processing time (from several minutes to several seconds).
Also, the overwrite mode always keep the latest samples.
Patch 1-7: Introduce new interfaces for generic code to support
overwrite mode for one by one event read.
Discards stale interfaces.
The patches can be merged separately.
Patch 8-12: Add overwrite support to perf top.
Perf top should only support either overwrite or non-overwrite
mode.
Switch default mode to overwrite mode
If kernel doesn't support overwrite mode, fall back to
non-overwrite mode.
Changes since V2:
- Move duplicate 'map->prev' out of perf_mmap__read. Modify the
perf_mmap__read_event accordingly.
- Introduce new interface perf_mmap__read_init to calculate the ringbuffer
position
- Check perf_missing_features.write_backward
- Discard stale interfaces perf_mmap__read_backward and
perf_mmap__read_catchup
Changes since V1:
- New patches 4-6
- Support both overwrite mode and non-overwrite mode.
If kernel doesn't support default overwrite mode, fall back to
non-overwrite mode.
Kan Liang (12):
perf evlist: remove stale mmap read for backward
perf mmap: factor out function to find ringbuffer position
perf mmap: discard 'prev' in perf_mmap__read
perf mmap: introduce perf_mmap__read_done
perf mmap: introduce perf_mmap__read_event
perf test: update mmap read functions for backward-ring-buffer test
perf mmap: discard legacy interface for mmap read
perf top: check per event overwrite term
perf evsel: expose perf_missing_features.write_backward
perf top: add overwrite fall back
perf top: switch default mode to overwrite mode
perf top: check the latency of perf_top__mmap_read
tools/perf/builtin-top.c | 139 +++++++++++++++++++++++++---
tools/perf/tests/backward-ring-buffer.c | 7 +-
tools/perf/ui/browsers/hists.c | 12 ++-
tools/perf/util/evlist.c | 17 ----
tools/perf/util/evlist.h | 4 -
tools/perf/util/evsel.c | 5 +
tools/perf/util/evsel.h | 2 +
tools/perf/util/mmap.c | 158 ++++++++++++++++++--------------
tools/perf/util/mmap.h | 10 +-
9 files changed, 244 insertions(+), 110 deletions(-)
--
2.5.5
next reply other threads:[~2017-12-21 18:09 UTC|newest]
Thread overview: 45+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-21 18:08 kan.liang [this message]
2017-12-21 18:08 ` [PATCH V3 01/12] perf evlist: remove stale mmap read for backward kan.liang
2017-12-21 18:08 ` [PATCH V3 02/12] perf mmap: factor out function to find ringbuffer position kan.liang
2018-01-10 15:37 ` Jiri Olsa
2018-01-10 19:31 ` Liang, Kan
2018-01-11 14:25 ` Jiri Olsa
2018-01-11 21:26 ` Liang, Kan
2018-01-12 10:52 ` Jiri Olsa
2017-12-21 18:08 ` [PATCH V3 03/12] perf mmap: discard 'prev' in perf_mmap__read kan.liang
2018-01-11 14:25 ` Jiri Olsa
2018-01-11 21:27 ` Liang, Kan
2017-12-21 18:08 ` [PATCH V3 04/12] perf mmap: introduce perf_mmap__read_done kan.liang
2018-01-02 7:33 ` Namhyung Kim
2018-01-03 14:15 ` Liang, Kan
2018-01-04 2:46 ` Namhyung Kim
2018-01-04 14:00 ` Liang, Kan
2018-01-09 7:12 ` Namhyung Kim
2018-01-09 15:12 ` Liang, Kan
2018-01-11 12:00 ` Namhyung Kim
2018-01-11 14:40 ` Liang, Kan
2018-01-11 14:25 ` Jiri Olsa
2018-01-11 21:27 ` Liang, Kan
2017-12-21 18:08 ` [PATCH V3 05/12] perf mmap: introduce perf_mmap__read_event kan.liang
2017-12-21 18:08 ` [PATCH V3 06/12] perf test: update mmap read functions for backward-ring-buffer test kan.liang
2017-12-21 18:08 ` [PATCH V3 07/12] perf mmap: discard legacy interface for mmap read kan.liang
2018-01-11 14:25 ` Jiri Olsa
2018-01-11 21:28 ` Liang, Kan
2018-01-12 10:52 ` Jiri Olsa
2017-12-21 18:08 ` [PATCH V3 08/12] perf top: check per event overwrite term kan.liang
2018-01-11 14:25 ` Jiri Olsa
2018-01-11 21:29 ` Liang, Kan
2018-01-12 11:42 ` Jiri Olsa
2018-01-12 14:58 ` Liang, Kan
2018-01-12 16:46 ` Liang, Kan
2017-12-21 18:08 ` [PATCH V3 09/12] perf evsel: expose perf_missing_features.write_backward kan.liang
2017-12-21 18:08 ` [PATCH V3 10/12] perf top: add overwrite fall back kan.liang
2018-01-11 14:26 ` Jiri Olsa
2018-01-11 21:30 ` Liang, Kan
2018-01-12 11:42 ` Jiri Olsa
2017-12-21 18:08 ` [PATCH V3 11/12] perf top: switch default mode to overwrite mode kan.liang
2018-01-11 14:26 ` Jiri Olsa
2018-01-11 21:30 ` Liang, Kan
2018-01-11 21:30 ` Liang, Kan
2018-01-11 14:26 ` Jiri Olsa
2017-12-21 18:08 ` [PATCH V3 12/12] perf top: check the latency of perf_top__mmap_read kan.liang
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=1513879734-237492-1-git-send-email-kan.liang@intel.com \
--to=kan.liang@intel.com \
--cc=acme@kernel.org \
--cc=ak@linux.intel.com \
--cc=jolsa@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=namhyung@kernel.org \
--cc=peterz@infradead.org \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
Powered by JetHome