Message ID | 20211230072030.302559-3-irogers@google.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | [v3] perf evlist: Remove group option. | expand |
On Wed, Dec 29, 2021 at 11:19:43PM -0800, Ian Rogers wrote: > The group option predates grouping events using curly braces added in > commit 89efb029502d ("perf tools: Add support to parse event group syntax") > The --group option was retained for legacy support (in August 2012) but > keeping it adds complexity. > > v2 and v3. were rebases. > > Signed-off-by: Ian Rogers <irogers@google.com> it should not be part of this patchset right? I see it was posted separately jirka > --- > tools/perf/Documentation/perf-record.txt | 4 ---- > tools/perf/Documentation/perf-top.txt | 7 ++----- > tools/perf/builtin-record.c | 2 -- > tools/perf/builtin-stat.c | 6 ------ > tools/perf/builtin-top.c | 2 -- > tools/perf/tests/attr/README | 2 -- > tools/perf/tests/attr/test-record-group | 22 ---------------------- > tools/perf/tests/attr/test-stat-group | 17 ----------------- > tools/perf/util/evlist.c | 2 +- > tools/perf/util/evlist.h | 2 -- > tools/perf/util/python.c | 8 -------- > tools/perf/util/record.c | 7 ------- > tools/perf/util/record.h | 1 - > 13 files changed, 3 insertions(+), 79 deletions(-) > delete mode 100644 tools/perf/tests/attr/test-record-group > delete mode 100644 tools/perf/tests/attr/test-stat-group > > diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt > index 55df7b073a55..960fb1ad3f27 100644 > --- a/tools/perf/Documentation/perf-record.txt > +++ b/tools/perf/Documentation/perf-record.txt > @@ -238,10 +238,6 @@ OPTIONS > Also, by adding a comma, the number of mmap pages for AUX > area tracing can be specified. > > ---group:: > - Put all events in a single event group. This precedes the --event > - option and remains only for backward compatibility. See --event. > - > -g:: > Enables call-graph (stack chain/backtrace) recording for both > kernel space and user space. > diff --git a/tools/perf/Documentation/perf-top.txt b/tools/perf/Documentation/perf-top.txt > index cac3dfbee7d8..acbafe777e52 100644 > --- a/tools/perf/Documentation/perf-top.txt > +++ b/tools/perf/Documentation/perf-top.txt > @@ -51,9 +51,6 @@ Default is to monitor all CPUS. > --count-filter=<count>:: > Only display functions with more events than this. > > ---group:: > - Put the counters into a counter group. > - > --group-sort-idx:: > Sort the output by the event at the index n in group. If n is invalid, > sort by the first event. It can support multiple groups with different > @@ -313,10 +310,10 @@ use '-e e1 -e e2 -G foo,foo' or just use '-e e1 -e e2 -G foo'. > > perf top -e cycles,probe:icmp_rcv --switch-on=probe:icmp_rcv > > - Alternatively one can ask for --group and then two overhead columns > + Alternatively one can ask for a group and then two overhead columns > will appear, the first for cycles and the second for the switch-on event. > > - perf top --group -e cycles,probe:icmp_rcv --switch-on=probe:icmp_rcv > + perf top -e '{cycles,probe:icmp_rcv}' --switch-on=probe:icmp_rcv > > This may be interesting to measure a workload only after some initialization > phase is over, i.e. insert a perf probe at that point and use the above > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > index 6ac2160913ea..54eff61f78eb 100644 > --- a/tools/perf/builtin-record.c > +++ b/tools/perf/builtin-record.c > @@ -2521,8 +2521,6 @@ static struct option __record_options[] = { > OPT_CALLBACK(0, "mmap-flush", &record.opts, "number", > "Minimal number of bytes that is extracted from mmap data pages (default: 1)", > record__mmap_flush_parse), > - OPT_BOOLEAN(0, "group", &record.opts.group, > - "put the counters into a counter group"), > OPT_CALLBACK_NOOPT('g', NULL, &callchain_param, > NULL, "enables call-graph recording" , > &record_callchain_opt), > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > index f6ca2b054c5b..8ce4ca6111ae 100644 > --- a/tools/perf/builtin-stat.c > +++ b/tools/perf/builtin-stat.c > @@ -180,7 +180,6 @@ static bool topdown_run = false; > static bool smi_cost = false; > static bool smi_reset = false; > static int big_num_opt = -1; > -static bool group = false; > static const char *pre_cmd = NULL; > static const char *post_cmd = NULL; > static bool sync_run = false; > @@ -800,9 +799,6 @@ static int __run_perf_stat(int argc, const char **argv, int run_idx) > child_pid = evsel_list->workload.pid; > } > > - if (group) > - evlist__set_leader(evsel_list); > - > if (affinity__setup(&affinity) < 0) > return -1; > > @@ -1212,8 +1208,6 @@ static struct option stat_options[] = { > #endif > OPT_BOOLEAN('a', "all-cpus", &target.system_wide, > "system-wide collection from all CPUs"), > - OPT_BOOLEAN('g', "group", &group, > - "put the counters into a counter group"), > OPT_BOOLEAN(0, "scale", &stat_config.scale, > "Use --no-scale to disable counter scaling for multiplexing"), > OPT_INCR('v', "verbose", &verbose, > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > index 1fc390f136dd..0d8441942f34 100644 > --- a/tools/perf/builtin-top.c > +++ b/tools/perf/builtin-top.c > @@ -1472,8 +1472,6 @@ int cmd_top(int argc, const char **argv) > "dump the symbol table used for profiling"), > OPT_INTEGER('f', "count-filter", &top.count_filter, > "only display functions with more events than this"), > - OPT_BOOLEAN(0, "group", &opts->group, > - "put the counters into a counter group"), > OPT_BOOLEAN('i', "no-inherit", &opts->no_inherit, > "child tasks do not inherit counters"), > OPT_STRING(0, "sym-annotate", &top.sym_filter, "symbol name", > diff --git a/tools/perf/tests/attr/README b/tools/perf/tests/attr/README > index a36f49fb4dbe..f538272af57b 100644 > --- a/tools/perf/tests/attr/README > +++ b/tools/perf/tests/attr/README > @@ -47,7 +47,6 @@ Following tests are defined (with perf commands): > perf record -g kill (test-record-graph-default) > perf record --call-graph dwarf kill (test-record-graph-dwarf) > perf record --call-graph fp kill (test-record-graph-fp) > - perf record --group -e cycles,instructions kill (test-record-group) > perf record -e '{cycles,instructions}' kill (test-record-group1) > perf record -e '{cycles/period=1/,instructions/period=2/}:S' kill (test-record-group2) > perf record -D kill (test-record-no-delay) > @@ -61,6 +60,5 @@ Following tests are defined (with perf commands): > perf stat -d kill (test-stat-detailed-1) > perf stat -dd kill (test-stat-detailed-2) > perf stat -ddd kill (test-stat-detailed-3) > - perf stat --group -e cycles,instructions kill (test-stat-group) > perf stat -e '{cycles,instructions}' kill (test-stat-group1) > perf stat -i -e cycles kill (test-stat-no-inherit) > diff --git a/tools/perf/tests/attr/test-record-group b/tools/perf/tests/attr/test-record-group > deleted file mode 100644 > index 14ee60fd3f41..000000000000 > --- a/tools/perf/tests/attr/test-record-group > +++ /dev/null > @@ -1,22 +0,0 @@ > -[config] > -command = record > -args = --no-bpf-event --group -e cycles,instructions kill >/dev/null 2>&1 > -ret = 1 > - > -[event-1:base-record] > -fd=1 > -group_fd=-1 > -sample_type=327 > -read_format=4 > - > -[event-2:base-record] > -fd=2 > -group_fd=1 > -config=1 > -sample_type=327 > -read_format=4 > -mmap=0 > -comm=0 > -task=0 > -enable_on_exec=0 > -disabled=0 > diff --git a/tools/perf/tests/attr/test-stat-group b/tools/perf/tests/attr/test-stat-group > deleted file mode 100644 > index e15d6946e9b3..000000000000 > --- a/tools/perf/tests/attr/test-stat-group > +++ /dev/null > @@ -1,17 +0,0 @@ > -[config] > -command = stat > -args = --group -e cycles,instructions kill >/dev/null 2>&1 > -ret = 1 > - > -[event-1:base-stat] > -fd=1 > -group_fd=-1 > -read_format=3|15 > - > -[event-2:base-stat] > -fd=2 > -group_fd=1 > -config=1 > -disabled=0 > -enable_on_exec=0 > -read_format=3|15 > diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c > index 5f92319ce258..2e11d82d15e0 100644 > --- a/tools/perf/util/evlist.c > +++ b/tools/perf/util/evlist.c > @@ -224,7 +224,7 @@ int __evlist__set_tracepoints_handlers(struct evlist *evlist, > return err; > } > > -void evlist__set_leader(struct evlist *evlist) > +static void evlist__set_leader(struct evlist *evlist) > { > perf_evlist__set_leader(&evlist->core); > } > diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h > index 27594900a052..ebab48a8120f 100644 > --- a/tools/perf/util/evlist.h > +++ b/tools/perf/util/evlist.h > @@ -203,8 +203,6 @@ void evlist__set_selected(struct evlist *evlist, struct evsel *evsel); > int evlist__create_maps(struct evlist *evlist, struct target *target); > int evlist__apply_filters(struct evlist *evlist, struct evsel **err_evsel); > > -void evlist__set_leader(struct evlist *evlist); > - > u64 __evlist__combined_sample_type(struct evlist *evlist); > u64 evlist__combined_sample_type(struct evlist *evlist); > u64 evlist__combined_branch_type(struct evlist *evlist); > diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c > index 7f782a31bda3..d063375c346a 100644 > --- a/tools/perf/util/python.c > +++ b/tools/perf/util/python.c > @@ -1121,14 +1121,6 @@ static PyObject *pyrf_evlist__open(struct pyrf_evlist *pevlist, > PyObject *args, PyObject *kwargs) > { > struct evlist *evlist = &pevlist->evlist; > - int group = 0; > - static char *kwlist[] = { "group", NULL }; > - > - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOii", kwlist, &group)) > - return NULL; > - > - if (group) > - evlist__set_leader(evlist); > > if (evlist__open(evlist) < 0) { > PyErr_SetFromErrno(PyExc_OSError); > diff --git a/tools/perf/util/record.c b/tools/perf/util/record.c > index bff669b615ee..9e694db7c7ee 100644 > --- a/tools/perf/util/record.c > +++ b/tools/perf/util/record.c > @@ -99,13 +99,6 @@ void evlist__config(struct evlist *evlist, struct record_opts *opts, struct call > bool use_comm_exec; > bool sample_id = opts->sample_id; > > - /* > - * Set the evsel leader links before we configure attributes, > - * since some might depend on this info. > - */ > - if (opts->group) > - evlist__set_leader(evlist); > - > if (evlist->core.cpus->map[0] < 0) > opts->no_inherit = true; > > diff --git a/tools/perf/util/record.h b/tools/perf/util/record.h > index ef6c2715fdd9..0a7a8dbbea9c 100644 > --- a/tools/perf/util/record.h > +++ b/tools/perf/util/record.h > @@ -13,7 +13,6 @@ struct option; > > struct record_opts { > struct target target; > - bool group; > bool inherit_stat; > bool no_buffering; > bool no_inherit; > -- > 2.34.1.307.g9b7440fafd-goog >
On Tue, Jan 4, 2022 at 6:21 AM Jiri Olsa <jolsa@redhat.com> wrote: > > On Wed, Dec 29, 2021 at 11:19:43PM -0800, Ian Rogers wrote: > > The group option predates grouping events using curly braces added in > > commit 89efb029502d ("perf tools: Add support to parse event group syntax") > > The --group option was retained for legacy support (in August 2012) but > > keeping it adds complexity. > > > > v2 and v3. were rebases. > > > > Signed-off-by: Ian Rogers <irogers@google.com> > > it should not be part of this patchset right? > I see it was posted separately Yep, sorry. Not part of this patch set I hadn't realized I had another v3 patch when I ran send-mail. This patch was sent out a little earlier already. Thanks, Ian > jirka > > > --- > > tools/perf/Documentation/perf-record.txt | 4 ---- > > tools/perf/Documentation/perf-top.txt | 7 ++----- > > tools/perf/builtin-record.c | 2 -- > > tools/perf/builtin-stat.c | 6 ------ > > tools/perf/builtin-top.c | 2 -- > > tools/perf/tests/attr/README | 2 -- > > tools/perf/tests/attr/test-record-group | 22 ---------------------- > > tools/perf/tests/attr/test-stat-group | 17 ----------------- > > tools/perf/util/evlist.c | 2 +- > > tools/perf/util/evlist.h | 2 -- > > tools/perf/util/python.c | 8 -------- > > tools/perf/util/record.c | 7 ------- > > tools/perf/util/record.h | 1 - > > 13 files changed, 3 insertions(+), 79 deletions(-) > > delete mode 100644 tools/perf/tests/attr/test-record-group > > delete mode 100644 tools/perf/tests/attr/test-stat-group > > > > diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt > > index 55df7b073a55..960fb1ad3f27 100644 > > --- a/tools/perf/Documentation/perf-record.txt > > +++ b/tools/perf/Documentation/perf-record.txt > > @@ -238,10 +238,6 @@ OPTIONS > > Also, by adding a comma, the number of mmap pages for AUX > > area tracing can be specified. > > > > ---group:: > > - Put all events in a single event group. This precedes the --event > > - option and remains only for backward compatibility. See --event. > > - > > -g:: > > Enables call-graph (stack chain/backtrace) recording for both > > kernel space and user space. > > diff --git a/tools/perf/Documentation/perf-top.txt b/tools/perf/Documentation/perf-top.txt > > index cac3dfbee7d8..acbafe777e52 100644 > > --- a/tools/perf/Documentation/perf-top.txt > > +++ b/tools/perf/Documentation/perf-top.txt > > @@ -51,9 +51,6 @@ Default is to monitor all CPUS. > > --count-filter=<count>:: > > Only display functions with more events than this. > > > > ---group:: > > - Put the counters into a counter group. > > - > > --group-sort-idx:: > > Sort the output by the event at the index n in group. If n is invalid, > > sort by the first event. It can support multiple groups with different > > @@ -313,10 +310,10 @@ use '-e e1 -e e2 -G foo,foo' or just use '-e e1 -e e2 -G foo'. > > > > perf top -e cycles,probe:icmp_rcv --switch-on=probe:icmp_rcv > > > > - Alternatively one can ask for --group and then two overhead columns > > + Alternatively one can ask for a group and then two overhead columns > > will appear, the first for cycles and the second for the switch-on event. > > > > - perf top --group -e cycles,probe:icmp_rcv --switch-on=probe:icmp_rcv > > + perf top -e '{cycles,probe:icmp_rcv}' --switch-on=probe:icmp_rcv > > > > This may be interesting to measure a workload only after some initialization > > phase is over, i.e. insert a perf probe at that point and use the above > > diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c > > index 6ac2160913ea..54eff61f78eb 100644 > > --- a/tools/perf/builtin-record.c > > +++ b/tools/perf/builtin-record.c > > @@ -2521,8 +2521,6 @@ static struct option __record_options[] = { > > OPT_CALLBACK(0, "mmap-flush", &record.opts, "number", > > "Minimal number of bytes that is extracted from mmap data pages (default: 1)", > > record__mmap_flush_parse), > > - OPT_BOOLEAN(0, "group", &record.opts.group, > > - "put the counters into a counter group"), > > OPT_CALLBACK_NOOPT('g', NULL, &callchain_param, > > NULL, "enables call-graph recording" , > > &record_callchain_opt), > > diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c > > index f6ca2b054c5b..8ce4ca6111ae 100644 > > --- a/tools/perf/builtin-stat.c > > +++ b/tools/perf/builtin-stat.c > > @@ -180,7 +180,6 @@ static bool topdown_run = false; > > static bool smi_cost = false; > > static bool smi_reset = false; > > static int big_num_opt = -1; > > -static bool group = false; > > static const char *pre_cmd = NULL; > > static const char *post_cmd = NULL; > > static bool sync_run = false; > > @@ -800,9 +799,6 @@ static int __run_perf_stat(int argc, const char **argv, int run_idx) > > child_pid = evsel_list->workload.pid; > > } > > > > - if (group) > > - evlist__set_leader(evsel_list); > > - > > if (affinity__setup(&affinity) < 0) > > return -1; > > > > @@ -1212,8 +1208,6 @@ static struct option stat_options[] = { > > #endif > > OPT_BOOLEAN('a', "all-cpus", &target.system_wide, > > "system-wide collection from all CPUs"), > > - OPT_BOOLEAN('g', "group", &group, > > - "put the counters into a counter group"), > > OPT_BOOLEAN(0, "scale", &stat_config.scale, > > "Use --no-scale to disable counter scaling for multiplexing"), > > OPT_INCR('v', "verbose", &verbose, > > diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c > > index 1fc390f136dd..0d8441942f34 100644 > > --- a/tools/perf/builtin-top.c > > +++ b/tools/perf/builtin-top.c > > @@ -1472,8 +1472,6 @@ int cmd_top(int argc, const char **argv) > > "dump the symbol table used for profiling"), > > OPT_INTEGER('f', "count-filter", &top.count_filter, > > "only display functions with more events than this"), > > - OPT_BOOLEAN(0, "group", &opts->group, > > - "put the counters into a counter group"), > > OPT_BOOLEAN('i', "no-inherit", &opts->no_inherit, > > "child tasks do not inherit counters"), > > OPT_STRING(0, "sym-annotate", &top.sym_filter, "symbol name", > > diff --git a/tools/perf/tests/attr/README b/tools/perf/tests/attr/README > > index a36f49fb4dbe..f538272af57b 100644 > > --- a/tools/perf/tests/attr/README > > +++ b/tools/perf/tests/attr/README > > @@ -47,7 +47,6 @@ Following tests are defined (with perf commands): > > perf record -g kill (test-record-graph-default) > > perf record --call-graph dwarf kill (test-record-graph-dwarf) > > perf record --call-graph fp kill (test-record-graph-fp) > > - perf record --group -e cycles,instructions kill (test-record-group) > > perf record -e '{cycles,instructions}' kill (test-record-group1) > > perf record -e '{cycles/period=1/,instructions/period=2/}:S' kill (test-record-group2) > > perf record -D kill (test-record-no-delay) > > @@ -61,6 +60,5 @@ Following tests are defined (with perf commands): > > perf stat -d kill (test-stat-detailed-1) > > perf stat -dd kill (test-stat-detailed-2) > > perf stat -ddd kill (test-stat-detailed-3) > > - perf stat --group -e cycles,instructions kill (test-stat-group) > > perf stat -e '{cycles,instructions}' kill (test-stat-group1) > > perf stat -i -e cycles kill (test-stat-no-inherit) > > diff --git a/tools/perf/tests/attr/test-record-group b/tools/perf/tests/attr/test-record-group > > deleted file mode 100644 > > index 14ee60fd3f41..000000000000 > > --- a/tools/perf/tests/attr/test-record-group > > +++ /dev/null > > @@ -1,22 +0,0 @@ > > -[config] > > -command = record > > -args = --no-bpf-event --group -e cycles,instructions kill >/dev/null 2>&1 > > -ret = 1 > > - > > -[event-1:base-record] > > -fd=1 > > -group_fd=-1 > > -sample_type=327 > > -read_format=4 > > - > > -[event-2:base-record] > > -fd=2 > > -group_fd=1 > > -config=1 > > -sample_type=327 > > -read_format=4 > > -mmap=0 > > -comm=0 > > -task=0 > > -enable_on_exec=0 > > -disabled=0 > > diff --git a/tools/perf/tests/attr/test-stat-group b/tools/perf/tests/attr/test-stat-group > > deleted file mode 100644 > > index e15d6946e9b3..000000000000 > > --- a/tools/perf/tests/attr/test-stat-group > > +++ /dev/null > > @@ -1,17 +0,0 @@ > > -[config] > > -command = stat > > -args = --group -e cycles,instructions kill >/dev/null 2>&1 > > -ret = 1 > > - > > -[event-1:base-stat] > > -fd=1 > > -group_fd=-1 > > -read_format=3|15 > > - > > -[event-2:base-stat] > > -fd=2 > > -group_fd=1 > > -config=1 > > -disabled=0 > > -enable_on_exec=0 > > -read_format=3|15 > > diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c > > index 5f92319ce258..2e11d82d15e0 100644 > > --- a/tools/perf/util/evlist.c > > +++ b/tools/perf/util/evlist.c > > @@ -224,7 +224,7 @@ int __evlist__set_tracepoints_handlers(struct evlist *evlist, > > return err; > > } > > > > -void evlist__set_leader(struct evlist *evlist) > > +static void evlist__set_leader(struct evlist *evlist) > > { > > perf_evlist__set_leader(&evlist->core); > > } > > diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h > > index 27594900a052..ebab48a8120f 100644 > > --- a/tools/perf/util/evlist.h > > +++ b/tools/perf/util/evlist.h > > @@ -203,8 +203,6 @@ void evlist__set_selected(struct evlist *evlist, struct evsel *evsel); > > int evlist__create_maps(struct evlist *evlist, struct target *target); > > int evlist__apply_filters(struct evlist *evlist, struct evsel **err_evsel); > > > > -void evlist__set_leader(struct evlist *evlist); > > - > > u64 __evlist__combined_sample_type(struct evlist *evlist); > > u64 evlist__combined_sample_type(struct evlist *evlist); > > u64 evlist__combined_branch_type(struct evlist *evlist); > > diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c > > index 7f782a31bda3..d063375c346a 100644 > > --- a/tools/perf/util/python.c > > +++ b/tools/perf/util/python.c > > @@ -1121,14 +1121,6 @@ static PyObject *pyrf_evlist__open(struct pyrf_evlist *pevlist, > > PyObject *args, PyObject *kwargs) > > { > > struct evlist *evlist = &pevlist->evlist; > > - int group = 0; > > - static char *kwlist[] = { "group", NULL }; > > - > > - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOii", kwlist, &group)) > > - return NULL; > > - > > - if (group) > > - evlist__set_leader(evlist); > > > > if (evlist__open(evlist) < 0) { > > PyErr_SetFromErrno(PyExc_OSError); > > diff --git a/tools/perf/util/record.c b/tools/perf/util/record.c > > index bff669b615ee..9e694db7c7ee 100644 > > --- a/tools/perf/util/record.c > > +++ b/tools/perf/util/record.c > > @@ -99,13 +99,6 @@ void evlist__config(struct evlist *evlist, struct record_opts *opts, struct call > > bool use_comm_exec; > > bool sample_id = opts->sample_id; > > > > - /* > > - * Set the evsel leader links before we configure attributes, > > - * since some might depend on this info. > > - */ > > - if (opts->group) > > - evlist__set_leader(evlist); > > - > > if (evlist->core.cpus->map[0] < 0) > > opts->no_inherit = true; > > > > diff --git a/tools/perf/util/record.h b/tools/perf/util/record.h > > index ef6c2715fdd9..0a7a8dbbea9c 100644 > > --- a/tools/perf/util/record.h > > +++ b/tools/perf/util/record.h > > @@ -13,7 +13,6 @@ struct option; > > > > struct record_opts { > > struct target target; > > - bool group; > > bool inherit_stat; > > bool no_buffering; > > bool no_inherit; > > -- > > 2.34.1.307.g9b7440fafd-goog > > >
diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt index 55df7b073a55..960fb1ad3f27 100644 --- a/tools/perf/Documentation/perf-record.txt +++ b/tools/perf/Documentation/perf-record.txt @@ -238,10 +238,6 @@ OPTIONS Also, by adding a comma, the number of mmap pages for AUX area tracing can be specified. ---group:: - Put all events in a single event group. This precedes the --event - option and remains only for backward compatibility. See --event. - -g:: Enables call-graph (stack chain/backtrace) recording for both kernel space and user space. diff --git a/tools/perf/Documentation/perf-top.txt b/tools/perf/Documentation/perf-top.txt index cac3dfbee7d8..acbafe777e52 100644 --- a/tools/perf/Documentation/perf-top.txt +++ b/tools/perf/Documentation/perf-top.txt @@ -51,9 +51,6 @@ Default is to monitor all CPUS. --count-filter=<count>:: Only display functions with more events than this. ---group:: - Put the counters into a counter group. - --group-sort-idx:: Sort the output by the event at the index n in group. If n is invalid, sort by the first event. It can support multiple groups with different @@ -313,10 +310,10 @@ use '-e e1 -e e2 -G foo,foo' or just use '-e e1 -e e2 -G foo'. perf top -e cycles,probe:icmp_rcv --switch-on=probe:icmp_rcv - Alternatively one can ask for --group and then two overhead columns + Alternatively one can ask for a group and then two overhead columns will appear, the first for cycles and the second for the switch-on event. - perf top --group -e cycles,probe:icmp_rcv --switch-on=probe:icmp_rcv + perf top -e '{cycles,probe:icmp_rcv}' --switch-on=probe:icmp_rcv This may be interesting to measure a workload only after some initialization phase is over, i.e. insert a perf probe at that point and use the above diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 6ac2160913ea..54eff61f78eb 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -2521,8 +2521,6 @@ static struct option __record_options[] = { OPT_CALLBACK(0, "mmap-flush", &record.opts, "number", "Minimal number of bytes that is extracted from mmap data pages (default: 1)", record__mmap_flush_parse), - OPT_BOOLEAN(0, "group", &record.opts.group, - "put the counters into a counter group"), OPT_CALLBACK_NOOPT('g', NULL, &callchain_param, NULL, "enables call-graph recording" , &record_callchain_opt), diff --git a/tools/perf/builtin-stat.c b/tools/perf/builtin-stat.c index f6ca2b054c5b..8ce4ca6111ae 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -180,7 +180,6 @@ static bool topdown_run = false; static bool smi_cost = false; static bool smi_reset = false; static int big_num_opt = -1; -static bool group = false; static const char *pre_cmd = NULL; static const char *post_cmd = NULL; static bool sync_run = false; @@ -800,9 +799,6 @@ static int __run_perf_stat(int argc, const char **argv, int run_idx) child_pid = evsel_list->workload.pid; } - if (group) - evlist__set_leader(evsel_list); - if (affinity__setup(&affinity) < 0) return -1; @@ -1212,8 +1208,6 @@ static struct option stat_options[] = { #endif OPT_BOOLEAN('a', "all-cpus", &target.system_wide, "system-wide collection from all CPUs"), - OPT_BOOLEAN('g', "group", &group, - "put the counters into a counter group"), OPT_BOOLEAN(0, "scale", &stat_config.scale, "Use --no-scale to disable counter scaling for multiplexing"), OPT_INCR('v', "verbose", &verbose, diff --git a/tools/perf/builtin-top.c b/tools/perf/builtin-top.c index 1fc390f136dd..0d8441942f34 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -1472,8 +1472,6 @@ int cmd_top(int argc, const char **argv) "dump the symbol table used for profiling"), OPT_INTEGER('f', "count-filter", &top.count_filter, "only display functions with more events than this"), - OPT_BOOLEAN(0, "group", &opts->group, - "put the counters into a counter group"), OPT_BOOLEAN('i', "no-inherit", &opts->no_inherit, "child tasks do not inherit counters"), OPT_STRING(0, "sym-annotate", &top.sym_filter, "symbol name", diff --git a/tools/perf/tests/attr/README b/tools/perf/tests/attr/README index a36f49fb4dbe..f538272af57b 100644 --- a/tools/perf/tests/attr/README +++ b/tools/perf/tests/attr/README @@ -47,7 +47,6 @@ Following tests are defined (with perf commands): perf record -g kill (test-record-graph-default) perf record --call-graph dwarf kill (test-record-graph-dwarf) perf record --call-graph fp kill (test-record-graph-fp) - perf record --group -e cycles,instructions kill (test-record-group) perf record -e '{cycles,instructions}' kill (test-record-group1) perf record -e '{cycles/period=1/,instructions/period=2/}:S' kill (test-record-group2) perf record -D kill (test-record-no-delay) @@ -61,6 +60,5 @@ Following tests are defined (with perf commands): perf stat -d kill (test-stat-detailed-1) perf stat -dd kill (test-stat-detailed-2) perf stat -ddd kill (test-stat-detailed-3) - perf stat --group -e cycles,instructions kill (test-stat-group) perf stat -e '{cycles,instructions}' kill (test-stat-group1) perf stat -i -e cycles kill (test-stat-no-inherit) diff --git a/tools/perf/tests/attr/test-record-group b/tools/perf/tests/attr/test-record-group deleted file mode 100644 index 14ee60fd3f41..000000000000 --- a/tools/perf/tests/attr/test-record-group +++ /dev/null @@ -1,22 +0,0 @@ -[config] -command = record -args = --no-bpf-event --group -e cycles,instructions kill >/dev/null 2>&1 -ret = 1 - -[event-1:base-record] -fd=1 -group_fd=-1 -sample_type=327 -read_format=4 - -[event-2:base-record] -fd=2 -group_fd=1 -config=1 -sample_type=327 -read_format=4 -mmap=0 -comm=0 -task=0 -enable_on_exec=0 -disabled=0 diff --git a/tools/perf/tests/attr/test-stat-group b/tools/perf/tests/attr/test-stat-group deleted file mode 100644 index e15d6946e9b3..000000000000 --- a/tools/perf/tests/attr/test-stat-group +++ /dev/null @@ -1,17 +0,0 @@ -[config] -command = stat -args = --group -e cycles,instructions kill >/dev/null 2>&1 -ret = 1 - -[event-1:base-stat] -fd=1 -group_fd=-1 -read_format=3|15 - -[event-2:base-stat] -fd=2 -group_fd=1 -config=1 -disabled=0 -enable_on_exec=0 -read_format=3|15 diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 5f92319ce258..2e11d82d15e0 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -224,7 +224,7 @@ int __evlist__set_tracepoints_handlers(struct evlist *evlist, return err; } -void evlist__set_leader(struct evlist *evlist) +static void evlist__set_leader(struct evlist *evlist) { perf_evlist__set_leader(&evlist->core); } diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h index 27594900a052..ebab48a8120f 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h @@ -203,8 +203,6 @@ void evlist__set_selected(struct evlist *evlist, struct evsel *evsel); int evlist__create_maps(struct evlist *evlist, struct target *target); int evlist__apply_filters(struct evlist *evlist, struct evsel **err_evsel); -void evlist__set_leader(struct evlist *evlist); - u64 __evlist__combined_sample_type(struct evlist *evlist); u64 evlist__combined_sample_type(struct evlist *evlist); u64 evlist__combined_branch_type(struct evlist *evlist); diff --git a/tools/perf/util/python.c b/tools/perf/util/python.c index 7f782a31bda3..d063375c346a 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -1121,14 +1121,6 @@ static PyObject *pyrf_evlist__open(struct pyrf_evlist *pevlist, PyObject *args, PyObject *kwargs) { struct evlist *evlist = &pevlist->evlist; - int group = 0; - static char *kwlist[] = { "group", NULL }; - - if (!PyArg_ParseTupleAndKeywords(args, kwargs, "|OOii", kwlist, &group)) - return NULL; - - if (group) - evlist__set_leader(evlist); if (evlist__open(evlist) < 0) { PyErr_SetFromErrno(PyExc_OSError); diff --git a/tools/perf/util/record.c b/tools/perf/util/record.c index bff669b615ee..9e694db7c7ee 100644 --- a/tools/perf/util/record.c +++ b/tools/perf/util/record.c @@ -99,13 +99,6 @@ void evlist__config(struct evlist *evlist, struct record_opts *opts, struct call bool use_comm_exec; bool sample_id = opts->sample_id; - /* - * Set the evsel leader links before we configure attributes, - * since some might depend on this info. - */ - if (opts->group) - evlist__set_leader(evlist); - if (evlist->core.cpus->map[0] < 0) opts->no_inherit = true; diff --git a/tools/perf/util/record.h b/tools/perf/util/record.h index ef6c2715fdd9..0a7a8dbbea9c 100644 --- a/tools/perf/util/record.h +++ b/tools/perf/util/record.h @@ -13,7 +13,6 @@ struct option; struct record_opts { struct target target; - bool group; bool inherit_stat; bool no_buffering; bool no_inherit;
The group option predates grouping events using curly braces added in commit 89efb029502d ("perf tools: Add support to parse event group syntax") The --group option was retained for legacy support (in August 2012) but keeping it adds complexity. v2 and v3. were rebases. Signed-off-by: Ian Rogers <irogers@google.com> --- tools/perf/Documentation/perf-record.txt | 4 ---- tools/perf/Documentation/perf-top.txt | 7 ++----- tools/perf/builtin-record.c | 2 -- tools/perf/builtin-stat.c | 6 ------ tools/perf/builtin-top.c | 2 -- tools/perf/tests/attr/README | 2 -- tools/perf/tests/attr/test-record-group | 22 ---------------------- tools/perf/tests/attr/test-stat-group | 17 ----------------- tools/perf/util/evlist.c | 2 +- tools/perf/util/evlist.h | 2 -- tools/perf/util/python.c | 8 -------- tools/perf/util/record.c | 7 ------- tools/perf/util/record.h | 1 - 13 files changed, 3 insertions(+), 79 deletions(-) delete mode 100644 tools/perf/tests/attr/test-record-group delete mode 100644 tools/perf/tests/attr/test-stat-group