From patchwork Tue Dec 13 23:26:51 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Ian Rogers X-Patchwork-Id: 32989 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:adf:e747:0:0:0:0:0 with SMTP id c7csp421847wrn; Tue, 13 Dec 2022 15:32:13 -0800 (PST) X-Google-Smtp-Source: AA0mqf6Pu/8lO/R/byW+wcedkuU8BCs6aVbMl3jSVCSZEqg1X05z3ZTAl/ZMmwNB6FgWO2UC40Bx X-Received: by 2002:a05:6402:298d:b0:465:f6a9:cb7b with SMTP id eq13-20020a056402298d00b00465f6a9cb7bmr2749662edb.12.1670974332876; Tue, 13 Dec 2022 15:32:12 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1670974332; cv=none; d=google.com; s=arc-20160816; b=CiskLgaSqFBjxKDA1vL/r7UmJW4KFADt6mvbWEJUIuNxN++STSDT4B4U+z1nb7Mlhe 60xVsyWq9qv0+wpZ6UvRjp6Aeuch/se72wYyv0yzsjngCZbldi9XS/njJ2iPzwXI+xnV Oe9M+VrMV9f+ncKvcSouFPhHq6PbnzldZrIxqFVZQfSozT9xWpURk9UgWtWUFcmM4Nfb 1BseGnteTz1nF3umaul61PJo8aox7ET3jyIJlMSFjsoUgNPiIZ0QmTbD54OabtHMHgZa JlfLEYV4gEeGYiCa9TLXtFhTFZotVTKmfyDQzq+6LnhEadrTI6eQwQB3+waQc9KVvqYT z2HA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:from:subject:references:mime-version :message-id:in-reply-to:date:dkim-signature; bh=jsNAerQT5Rq7PxpPFaFCKhUoi37tiOPWmIWVWeQhySU=; b=UF3x6utBxa4LLTCZWnpNIxqCg68ISQ/6fVEsjrnQqHfKSGlWC24IzQ70BNCM4kbKWc KU6iMggmnCzFb4sAHYbmI8Lt4OfyMx/KLh2Nu0nYrth3HnLKtey5Eu3dZE43dipAbzOG PJKYlPJHn2u9CqPmFPpm7sm/YVp/i77A/SX5jAk+VjLCUJOqtjh74+KFbcKXo7v8Z3x/ OUWCqMSnPmIxPv1TvIeTelltOYRAkgODP09b/40uV1NcJp6F4wM/khudWOxjqOyLVGjW wH2ojLlYUxWHXQYN51tnhQDQ7ODn3yNuTbF4K8rgLtYCcrv27ciy1F7xkzddZiKYmoES HIXw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=TjHoSn2U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id h13-20020a056402280d00b0046ca78c5bffsi12398291ede.449.2022.12.13.15.31.48; Tue, 13 Dec 2022 15:32:12 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=TjHoSn2U; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S237119AbiLMX2S (ORCPT + 99 others); Tue, 13 Dec 2022 18:28:18 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:42830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S237081AbiLMX2D (ORCPT ); Tue, 13 Dec 2022 18:28:03 -0500 Received: from mail-pg1-x549.google.com (mail-pg1-x549.google.com [IPv6:2607:f8b0:4864:20::549]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id F21711EAF2 for ; Tue, 13 Dec 2022 15:27:53 -0800 (PST) Received: by mail-pg1-x549.google.com with SMTP id 38-20020a630b26000000b004773803dda1so717548pgl.17 for ; Tue, 13 Dec 2022 15:27:53 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:from:to:cc:subject:date:message-id:reply-to; bh=jsNAerQT5Rq7PxpPFaFCKhUoi37tiOPWmIWVWeQhySU=; b=TjHoSn2U8lDg144iLpuyk2HJOrSlP187XCJAFaGy0+hrwSBKWJ3wh8JG66DD7i1gDQ ZgztgmeF9Df/PxUAgnRI0hH84CbQ4WvKgaS7gqNUQbQhuzQZoidjvO+Py3beHDDx+oVQ s+29WyXVCyxJ+JXwkVeBfdg2ek0uTf5Qa2El0G7Sc2R0upj2qGRZBfrEyDk2Uq52elzO +ZcUsH4GW4l3HPyvu01kVCC/dhW45uS49+UvL1BCeXw8V0+TUmyNIcLh7Kd+uEbiu9w5 dLjsSkXr0utbhBNt1pOv48usCdYhLhFSsitFB7ukAqoEzixNsrHS+HPEYpxdvjfHpm3n vRAg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=cc:to:from:subject:references:mime-version:message-id:in-reply-to :date:x-gm-message-state:from:to:cc:subject:date:message-id:reply-to; bh=jsNAerQT5Rq7PxpPFaFCKhUoi37tiOPWmIWVWeQhySU=; b=VGe+QYwRqNml5haGK5xYeSo00b1cVwrGJWBZHOFXykuvtue3rtbijHvl/bPomm0RgM V4XGoyNUSlyDUciJVmm/zugr+Re0+3Yek1yVp2lEsmJJJP5Cxk/9f89Vip5ifsdDM/vW nFAAKFCYPLUcH0BmJ+2aoPt/ebNNapjZolXh0H5alCl7BxfCa6Q5+AGsUO26otoke2L/ GYgvIpDMSwXHSR3ysESQ4gnwIddql2UcJ8wMAPP2WcGRyIHbhjr9EuF1fOKavHMwm/gQ XoIwkR+vI+DbyWHhgjPP+TfcjmaqkOWwXRonjFDFFP/yd3EID8fGnWF9Lt6W6chboJGJ B4XA== X-Gm-Message-State: ANoB5pkCFLCMVKtZa3FrudY2n7jj7grwI+N8llm1TOD3eTgDLppHheW3 PMTWF1Ecs00GSWPLNnf/g4UE735dSHEX X-Received: from irogers.svl.corp.google.com ([2620:15c:2d4:203:6268:b448:f7f4:4c2]) (user=irogers job=sendgmr) by 2002:a62:6d46:0:b0:563:54fd:3638 with SMTP id i67-20020a626d46000000b0056354fd3638mr99686672pfc.44.1670974072765; Tue, 13 Dec 2022 15:27:52 -0800 (PST) Date: Tue, 13 Dec 2022 15:26:51 -0800 In-Reply-To: <20221213232651.1269909-1-irogers@google.com> Message-Id: <20221213232651.1269909-6-irogers@google.com> Mime-Version: 1.0 References: <20221213232651.1269909-1-irogers@google.com> X-Mailer: git-send-email 2.39.0.314.g84b9a713c41-goog Subject: [PATCH v1 5/5] perf evlist: Remove group option. From: Ian Rogers To: Peter Zijlstra , Ingo Molnar , Arnaldo Carvalho de Melo , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Alexey Bayduraev , Adrian Hunter , Anshuman Khandual , Andi Kleen , James Clark , Sandipan Das , German Gomez , Leo Yan , Timothy Hayes , Kan Liang , Xing Zhengjun , Kim Phillips , Riccardo Mancini , Sean Christopherson , shaomin Deng , Eelco Chaudron , Athira Jajeev , linux-kernel@vger.kernel.org, linux-perf-users@vger.kernel.org, bpf@vger.kernel.org Cc: Stephane Eranian , Ian Rogers X-Spam-Status: No, score=-9.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE, SPF_HELO_NONE,SPF_PASS,USER_IN_DEF_DKIM_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-getmail-retrieved-from-mailbox: =?utf-8?q?INBOX?= X-GMAIL-THRID: =?utf-8?q?1752143582082426708?= X-GMAIL-MSGID: =?utf-8?q?1752143582082426708?= 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. Signed-off-by: Ian Rogers --- 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 5f9fa07b3dde..ff815c2f67e8 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 c1fdba26bf53..e534d709cc5a 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=:: 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 7e17374f6c1a..8ecffa696ce3 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -3380,8 +3380,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 d040fbcdcc5a..2808f2aa9a82 100644 --- a/tools/perf/builtin-stat.c +++ b/tools/perf/builtin-stat.c @@ -181,7 +181,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; @@ -781,9 +780,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 (!cpu_map__is_dummy(evsel_list->core.user_requested_cpus)) { if (affinity__setup(&saved_affinity) < 0) return -1; @@ -1192,8 +1188,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 bb5bd241246b..d4b5b02bab73 100644 --- a/tools/perf/builtin-top.c +++ b/tools/perf/builtin-top.c @@ -1471,8 +1471,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 eb3f7d4bb324..4066fec7180a 100644 --- a/tools/perf/tests/attr/README +++ b/tools/perf/tests/attr/README @@ -49,7 +49,6 @@ Following tests are defined (with perf commands): perf record --call-graph dwarf kill (test-record-graph-dwarf) perf record --call-graph fp kill (test-record-graph-fp) perf record --call-graph fp kill (test-record-graph-fp-aarch64) - 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) @@ -66,6 +65,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 6c1cff8aae8b..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|20 - -[event-2:base-record] -fd=2 -group_fd=1 -config=1 -sample_type=327 -read_format=4|20 -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 590d4e77effc..817df2504a1e 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -230,7 +230,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 e5b84ead566c..01fa9d592c5a 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h @@ -221,8 +221,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 1d0cf72506a6..a19d3983e69a 100644 --- a/tools/perf/util/python.c +++ b/tools/perf/util/python.c @@ -1142,14 +1142,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 7b58f6c7c69d..9eb5c6a08999 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 (perf_cpu_map__cpu(evlist->core.user_requested_cpus, 0).cpu < 0) opts->no_inherit = true; diff --git a/tools/perf/util/record.h b/tools/perf/util/record.h index 4269e916f450..46212bf020cf 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;