Re: [PATCH v12 3/3]: perf record: extend trace writing to multi AIO

From: Jiri Olsa
Date: Thu Oct 11 2018 - 09:46:04 EST


On Tue, Oct 09, 2018 at 11:59:31AM +0300, Alexey Budankov wrote:

SNIP

> @@ -1568,15 +1596,18 @@ static int parse_clockid(const struct option *opt, const char *str, int unset)
>
> #ifdef HAVE_AIO_SUPPORT
> static int record__aio_parse(const struct option *opt,
> - const char *str __maybe_unused,
> + const char *str,
> int unset)
> {
> struct record_opts *opts = (struct record_opts *)opt->value;
>
> - if (unset)
> + if (unset) {
> opts->nr_cblocks = 0;
> - else
> - opts->nr_cblocks = 1;
> + } else {
> + opts->nr_cblocks = strtol(str, NULL, 0);
> + if (!opts->nr_cblocks)
> + opts->nr_cblocks = 1;
> + }
>
> return 0;
> }
> @@ -1886,8 +1917,8 @@ static struct option __record_options[] = {
> OPT_BOOLEAN(0, "dry-run", &dry_run,
> "Parse options then exit"),
> #ifdef HAVE_AIO_SUPPORT
> - OPT_CALLBACK_NOOPT(0, "aio", &record.opts,
> - NULL, "Enable asynchronous trace writing mode",

hum, why removing --aio option? I though we will have:

perf record --aio .... # enables aio with default settings
perf record --aio-cblocks=3 ... # enabled aio with aio-cblocks=3


jirka

> + OPT_CALLBACK(0, "aio-cblocks", &record.opts,
> + "n", "Use <n> control blocks in asynchronous trace writing mode (max: 4)",
> record__aio_parse),

SNIP