From: Arnaldo Carvalho de Melo <acme@kernel.org>
To: Wang Nan <wangnan0@huawei.com>
Cc: jolsa@redhat.com, linux-kernel@vger.kernel.org, pi3orama@163.com,
lizefan@huawei.com, Arnaldo Carvalho de Melo <acme@redhat.com>,
Jiri Olsa <jolsa@kernel.org>,
Masami Hiramatsu <mhiramat@kernel.org>,
Namhyung Kim <namhyung@kernel.org>, He Kuang <hekuang@huawei.com>,
Nilay Vaish <nilayvaish@gmail.com>
Subject: Re: [PATCH v11 01/10] perf record: Prepare mmap multiple evlists
Date: Mon, 27 Jun 2016 14:45:42 -0300 [thread overview]
Message-ID: <20160627174542.GC27027@kernel.org> (raw)
In-Reply-To: <1467023052-146749-2-git-send-email-wangnan0@huawei.com>
Em Mon, Jun 27, 2016 at 10:24:03AM +0000, Wang Nan escreveu:
> Following commits introduce multiple evlists to record. This patch
> extracts perf_evlist__mmap_ex() processing to a new function, creates
> record__mmap() and record__mmap_evlist() to wrap perf_evlist__mmap_ex()
> and its error processing. They will be improvemented to create mmap
> for all evlists.
Thanks for following my suggestion, as you can see this patch has value
irrespective of the other patches in this series and can be applied
straight away.
- Arnaldo
> Signed-off-by: Wang Nan <wangnan0@huawei.com>
> Cc: Arnaldo Carvalho de Melo <acme@redhat.com>
> Cc: Jiri Olsa <jolsa@kernel.org>
> Cc: Masami Hiramatsu <mhiramat@kernel.org>
> Cc: Namhyung Kim <namhyung@kernel.org>
> Cc: Zefan Li <lizefan@huawei.com>
> Cc: He Kuang <hekuang@huawei.com>
> Cc: Nilay Vaish <nilayvaish@gmail.com>
> ---
> tools/perf/builtin-record.c | 56 +++++++++++++++++++++++++++++----------------
> 1 file changed, 36 insertions(+), 20 deletions(-)
>
> diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c
> index 81411b1..7eb8d7d 100644
> --- a/tools/perf/builtin-record.c
> +++ b/tools/perf/builtin-record.c
> @@ -342,6 +342,40 @@ int auxtrace_record__snapshot_start(struct auxtrace_record *itr __maybe_unused)
>
> #endif
>
> +static int record__mmap_evlist(struct record *rec,
> + struct perf_evlist *evlist)
> +{
> + struct record_opts *opts = &rec->opts;
> + char msg[512];
> +
> + if (perf_evlist__mmap_ex(evlist, opts->mmap_pages, false,
> + opts->auxtrace_mmap_pages,
> + opts->auxtrace_snapshot_mode) < 0) {
> + if (errno == EPERM) {
> + pr_err("Permission error mapping pages.\n"
> + "Consider increasing "
> + "/proc/sys/kernel/perf_event_mlock_kb,\n"
> + "or try again with a smaller value of -m/--mmap_pages.\n"
> + "(current value: %u,%u)\n",
> + opts->mmap_pages, opts->auxtrace_mmap_pages);
> + return -errno;
> + } else {
> + pr_err("failed to mmap with %d (%s)\n", errno,
> + strerror_r(errno, msg, sizeof(msg)));
> + if (errno)
> + return -errno;
> + else
> + return -EINVAL;
> + }
> + }
> + return 0;
> +}
> +
> +static int record__mmap(struct record *rec)
> +{
> + return record__mmap_evlist(rec, rec->evlist);
> +}
> +
> static int record__open(struct record *rec)
> {
> char msg[512];
> @@ -378,27 +412,9 @@ try_again:
> goto out;
> }
>
> - if (perf_evlist__mmap_ex(evlist, opts->mmap_pages, false,
> - opts->auxtrace_mmap_pages,
> - opts->auxtrace_snapshot_mode) < 0) {
> - if (errno == EPERM) {
> - pr_err("Permission error mapping pages.\n"
> - "Consider increasing "
> - "/proc/sys/kernel/perf_event_mlock_kb,\n"
> - "or try again with a smaller value of -m/--mmap_pages.\n"
> - "(current value: %u,%u)\n",
> - opts->mmap_pages, opts->auxtrace_mmap_pages);
> - rc = -errno;
> - } else {
> - pr_err("failed to mmap with %d (%s)\n", errno,
> - strerror_r(errno, msg, sizeof(msg)));
> - if (errno)
> - rc = -errno;
> - else
> - rc = -EINVAL;
> - }
> + rc = record__mmap(rec);
> + if (rc)
> goto out;
> - }
>
> session->evlist = evlist;
> perf_session__set_id_hdr_size(session);
> --
> 1.8.3.4
next prev parent reply other threads:[~2016-06-27 17:45 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-06-27 10:24 [PATCH v11 00/10] perf tools: Support overwritable ring buffer Wang Nan
2016-06-27 10:24 ` [PATCH v11 01/10] perf record: Prepare mmap multiple evlists Wang Nan
2016-06-27 17:45 ` Arnaldo Carvalho de Melo [this message]
2016-06-29 9:43 ` [tip:perf/core] perf record: Move mmap setup block to separate function tip-bot for Wang Nan
2016-06-27 10:24 ` [PATCH v11 02/10] perf record: Prepare reading from multiple evlists in record__mmap_read_all() Wang Nan
2016-06-29 9:43 ` [tip:perf/core] " tip-bot for Wang Nan
2016-06-27 10:24 ` [PATCH v11 03/10] perf record: Prepare picking perf_event_mmap_page from multiple evlists Wang Nan
2016-06-29 9:44 ` [tip:perf/core] " tip-bot for Wang Nan
2016-06-27 10:24 ` [PATCH v11 04/10] perf evlist: Introduce aux evlist Wang Nan
2016-06-27 10:24 ` [PATCH v11 05/10] perf tests: Add testcase for auxiliary evlist Wang Nan
2016-06-27 10:24 ` [PATCH v11 06/10] perf record: Introduce rec->overwrite_evlist for overwritable events Wang Nan
2016-06-27 10:24 ` [PATCH v11 07/10] perf record: Read from overwritable ring buffer Wang Nan
2016-06-27 10:24 ` [PATCH v11 08/10] perf tools: Enable overwrite settings Wang Nan
2016-06-27 10:24 ` [PATCH v11 09/10] perf tools: Don't warn about out of order event if write_backward is used Wang Nan
2016-06-27 10:24 ` [PATCH v11 10/10] perf tools: Add --tail-synthesize option Wang Nan
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=20160627174542.GC27027@kernel.org \
--to=acme@kernel.org \
--cc=acme@redhat.com \
--cc=hekuang@huawei.com \
--cc=jolsa@kernel.org \
--cc=jolsa@redhat.com \
--cc=linux-kernel@vger.kernel.org \
--cc=lizefan@huawei.com \
--cc=mhiramat@kernel.org \
--cc=namhyung@kernel.org \
--cc=nilayvaish@gmail.com \
--cc=pi3orama@163.com \
--cc=wangnan0@huawei.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.