From patchwork Fri Aug 4 02:07:35 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 130911 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1527514vqx; Thu, 3 Aug 2023 19:13:09 -0700 (PDT) X-Google-Smtp-Source: APBJJlEfDNtO35AB/fa1OJ7J0UmTWyFWRNy3lY6TKijaidlIBBMRBvnyo0kjlKBEVXlMufAlZEUk X-Received: by 2002:a17:906:5358:b0:997:d069:a880 with SMTP id j24-20020a170906535800b00997d069a880mr14484046ejo.1.1691115189429; Thu, 03 Aug 2023 19:13:09 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691115189; cv=none; d=google.com; s=arc-20160816; b=j91NYa8Eb+mh4BlQ7j8QEk7QdLEenrIhWhGoOFw2LIWeapM6OBGmr8p6JjR8fPIaOO c5N+GTc5PJGEjxARZPte4Wwwrz79aFkeCIVJgS/9vMZoKYIA5tWJbA9Le+ZIGktSdSzR uL2znDqVzl8LIwiYwvwAPnVxvcSrBNkHB8iGmk1qAU5jhgTe90suQZ+B2Rpv8Qm+5xDS DgIWCfYuavf5O7vUGoyLK18e1MY78QvxuAz7gyw9PR6Lz4PXxA3gCX0tIChH7zXp0c/o Y0hHVe92C0+Iz0ADNlFd+2dmowxsEpURB0fqUV27D7FRYVneICaAAZENVMKAvR+X445G U5QA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=NRO6ll3NODRZGsv8c8lf/yozKZ6mRiA3XVYR111eioU=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=tiQsaKVseedJc4FXolcKl5T/sadlXP/LVe3898RirAq6nTr1TsYsKP8J90JLlBK0VX C/hHPsep4iaZ/40FohJtXEvn7pp2GPSgmwPZaOtxJkHrYgVHXiBiCGIUT19apkimTbem jB2JEbIHcQLwFo5aUw9k15FafMoJ+NHNWcDa5Ih5uLBYW3YzwRrAkDDJH17ZlpkFY2AM yt6qJk2vgYHpsk/MFQLFi34ZG9enZUmPbJjSsVIXHh78jRQiVoDXVuD2UrPV2L/4Gs/j P44gxlf4/GnhFYY5IUtL+5j+0AFLeby5VUJgbJzHmNLS+bQmDJMqA+V5730jkEPNJ0pQ WUvg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id r10-20020a170906c28a00b0099bc91da959si771362ejz.944.2023.08.03.19.12.45; Thu, 03 Aug 2023 19:13:09 -0700 (PDT) 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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231520AbjHDCKV (ORCPT + 99 others); Thu, 3 Aug 2023 22:10:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36420 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229613AbjHDCKT (ORCPT ); Thu, 3 Aug 2023 22:10:19 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A420C448F; Thu, 3 Aug 2023 19:10:18 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.53]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4RH8Gf2ccVzNmkN; Fri, 4 Aug 2023 10:06:50 +0800 (CST) Received: from localhost.localdomain (10.67.174.95) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 10:10:16 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v5 1/7] perf evlist: Add perf_evlist__go_system_wide() helper Date: Fri, 4 Aug 2023 02:07:35 +0000 Message-ID: <20230804020741.99806-2-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230804020741.99806-1-yangjihong1@huawei.com> References: <20230804020741.99806-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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: INBOX X-GMAIL-THRID: 1773262800927737767 X-GMAIL-MSGID: 1773262800927737767 For dummy events that keep tracking, we may need to modify its cpu_maps. For example, change the cpu_maps to record sideband events for all CPUS. Add perf_evlist__go_system_wide() helper to support this scenario. Signed-off-by: Yang Jihong Acked-by: Adrian Hunter --- tools/lib/perf/evlist.c | 9 +++++++++ tools/lib/perf/include/internal/evlist.h | 2 ++ 2 files changed, 11 insertions(+) diff --git a/tools/lib/perf/evlist.c b/tools/lib/perf/evlist.c index b8b066d0dc5e..3acbbccc1901 100644 --- a/tools/lib/perf/evlist.c +++ b/tools/lib/perf/evlist.c @@ -738,3 +738,12 @@ int perf_evlist__nr_groups(struct perf_evlist *evlist) } return nr_groups; } + +void perf_evlist__go_system_wide(struct perf_evlist *evlist, struct perf_evsel *evsel) +{ + if (!evsel->system_wide) { + evsel->system_wide = true; + if (evlist->needs_map_propagation) + __perf_evlist__propagate_maps(evlist, evsel); + } +} diff --git a/tools/lib/perf/include/internal/evlist.h b/tools/lib/perf/include/internal/evlist.h index 3339bc2f1765..d86ffe8ed483 100644 --- a/tools/lib/perf/include/internal/evlist.h +++ b/tools/lib/perf/include/internal/evlist.h @@ -135,4 +135,6 @@ int perf_evlist__id_add_fd(struct perf_evlist *evlist, void perf_evlist__reset_id_hash(struct perf_evlist *evlist); void __perf_evlist__set_leader(struct list_head *list, struct perf_evsel *leader); + +void perf_evlist__go_system_wide(struct perf_evlist *evlist, struct perf_evsel *evsel); #endif /* __LIBPERF_INTERNAL_EVLIST_H */ From patchwork Fri Aug 4 02:07:36 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 130921 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1531031vqx; Thu, 3 Aug 2023 19:23:48 -0700 (PDT) X-Google-Smtp-Source: APBJJlEuB/PmGSThy7ilcfI9wNtjQauJy7J2QMdTOMxt9SxpBBCs9OZttaiGwSfyaAy4RIEz9IfK X-Received: by 2002:a5d:4b81:0:b0:317:5de0:8ba8 with SMTP id b1-20020a5d4b81000000b003175de08ba8mr13527541wrt.1.1691115828651; Thu, 03 Aug 2023 19:23:48 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691115828; cv=none; d=google.com; s=arc-20160816; b=t+7HbVdTiUB85QBhoj1yI07SEDfkkVp9MGamKqIRrjPLOVVR/v4fJuAmukV/JP4rkh iK4jWgucEgUlLBcRCMsSsfPBSoByH5JrkBqLmTlb1aYfDjvEgrNJF473MBFFfy8PTWuD AK/71tGAl9tRQ7pwgqgEI9pQ4EgkvAxXFa1Kk/r7LJqRsJFU7t8yUq5LEKyBhMv2amei eczS4UHbrHzMetlDL/UbYuWu3E7AfK5MKNRYDKTKL3QHbz7efMy88YJ+GQ5jMTXzdhtS nmbUicaNe9woMsGflVNP3vDI3eKPZrHJSEA0onF+NfmM5oe3oW+JGXv6CgpIBJcRwb0Z E57Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=Op/wOwUQ6kgLn1wSpQN6Nxcm0PTNIgrnEOInp+6SHFk=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=W13V7L11oAOSgP0LfItNdejxLoQXqj3hQDwdcbbfPUMQFIzmakH+jE6nbQOgpkwXSI aI+zbZGc6MKbfw/5KmkNCnS4lA1rpTC6ViHAyK/o+YqFEH1OnItilghM0LJWtpbfYE3q 8L8hoQNZTssnHUz0Iuo1XAR+YNFHD/qyvgGtTTpnR8YwhogxjLzdJ8WkJTPYPlpqkn5t jc66TxwfNt4p+m8Mrd4Drt6W0zlQyhqb8JJYefzCsyYJ+BCHOxJJk0+TfMp5WKztNIy6 WUB6pTsQN2yFeU+H8ctKRBh+s6ffxFO2XWEd9JQHsx2Q4enXvIPrdx2ibrsVDU3aBAAC CyNA== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f17-20020a056402069100b00522d85a7617si872832edy.244.2023.08.03.19.23.24; Thu, 03 Aug 2023 19:23:48 -0700 (PDT) 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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230062AbjHDCK0 (ORCPT + 99 others); Thu, 3 Aug 2023 22:10:26 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36428 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230513AbjHDCKU (ORCPT ); Thu, 3 Aug 2023 22:10:20 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 642C74494; Thu, 3 Aug 2023 19:10:19 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4RH8Gj6NKTztQSD; Fri, 4 Aug 2023 10:06:53 +0800 (CST) Received: from localhost.localdomain (10.67.174.95) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 10:10:16 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v5 2/7] perf evlist: Add evlist__findnew_tracking_event() helper Date: Fri, 4 Aug 2023 02:07:36 +0000 Message-ID: <20230804020741.99806-3-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230804020741.99806-1-yangjihong1@huawei.com> References: <20230804020741.99806-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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: INBOX X-GMAIL-THRID: 1773263471109744967 X-GMAIL-MSGID: 1773263471109744967 Currently, intel-bts, intel-pt, and arm-spe may add a dummy event for tracking to the evlist. We may need to search for the dummy event for some settings. Therefore, add evlist__findnew_tracking_event() helper. evlist__findnew_tracking_event() also deal with system_wide maps if system_wide is true. Signed-off-by: Yang Jihong Acked-by: Adrian Hunter --- tools/perf/builtin-record.c | 11 +++-------- tools/perf/util/evlist.c | 18 ++++++++++++++++++ tools/perf/util/evlist.h | 1 + 3 files changed, 22 insertions(+), 8 deletions(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index aec18db7ff23..ca83599cc50c 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -1295,14 +1295,9 @@ static int record__open(struct record *rec) */ if (opts->target.initial_delay || target__has_cpu(&opts->target) || perf_pmus__num_core_pmus() > 1) { - pos = evlist__get_tracking_event(evlist); - if (!evsel__is_dummy_event(pos)) { - /* Set up dummy event. */ - if (evlist__add_dummy(evlist)) - return -ENOMEM; - pos = evlist__last(evlist); - evlist__set_tracking_event(evlist, pos); - } + pos = evlist__findnew_tracking_event(evlist, false); + if (!pos) + return -ENOMEM; /* * Enable the dummy event when the process is forked for diff --git a/tools/perf/util/evlist.c b/tools/perf/util/evlist.c index 7ef43f72098e..25c3ebe2c2f5 100644 --- a/tools/perf/util/evlist.c +++ b/tools/perf/util/evlist.c @@ -1694,6 +1694,24 @@ void evlist__set_tracking_event(struct evlist *evlist, struct evsel *tracking_ev tracking_evsel->tracking = true; } +struct evsel *evlist__findnew_tracking_event(struct evlist *evlist, bool system_wide) +{ + struct evsel *evsel; + + evsel = evlist__get_tracking_event(evlist); + if (!evsel__is_dummy_event(evsel)) { + evsel = evlist__add_aux_dummy(evlist, system_wide); + if (!evsel) + return NULL; + + evlist__set_tracking_event(evlist, evsel); + } else if (system_wide) { + perf_evlist__go_system_wide(&evlist->core, &evsel->core); + } + + return evsel; +} + struct evsel *evlist__find_evsel_by_str(struct evlist *evlist, const char *str) { struct evsel *evsel; diff --git a/tools/perf/util/evlist.h b/tools/perf/util/evlist.h index 664c6bf7b3e0..98e7ddb2bd30 100644 --- a/tools/perf/util/evlist.h +++ b/tools/perf/util/evlist.h @@ -387,6 +387,7 @@ bool evlist_cpu_iterator__end(const struct evlist_cpu_iterator *evlist_cpu_itr); struct evsel *evlist__get_tracking_event(struct evlist *evlist); void evlist__set_tracking_event(struct evlist *evlist, struct evsel *tracking_evsel); +struct evsel *evlist__findnew_tracking_event(struct evlist *evlist, bool system_wide); struct evsel *evlist__find_evsel_by_str(struct evlist *evlist, const char *str); From patchwork Fri Aug 4 02:07:37 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 130927 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1534581vqx; Thu, 3 Aug 2023 19:34:05 -0700 (PDT) X-Google-Smtp-Source: APBJJlE6aOlZ0DJiqCc6YQe5S5YMFHee1SJuyIXYnSr/+abZ1AlKHZysXB6gnX3larlARvGkptQ7 X-Received: by 2002:a05:6a21:998c:b0:137:3941:17b3 with SMTP id ve12-20020a056a21998c00b00137394117b3mr24640231pzb.6.1691116445669; Thu, 03 Aug 2023 19:34:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691116445; cv=none; d=google.com; s=arc-20160816; b=LCjZ26g51TKDE4LIUWxyV+Vq4qRJDh2wLMdsUo8I1XSi7JaAXSFojYHaSqz1o1V2Fk aJQrED27jtsY5b3KHzjj6cKZowA3Xrv9geLvuxhVegVjozhrU8k3Qzwl7b4EZdRR3NXu jNo7ckq3H4EX1+mZqSWvSq06C5B8Y5A9hqHr30CuURew4jYmm7nrM2cxwULhXzgEL8Ty 1AHXQTZ9sOFPLa5eDcU5KgBG3R9fG9bdXhxBevCP4GJ5wkoYKrKtQN9+dLX7Gn078bOI VJ/P00knXo/QRhmlKxX/Xaya7n+KV6V+KKvw6jepSKQj6S+TX255aiOeR8YAwEfjc3dp Cb5g== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=NtcLzvfJcJjryJA02teAEGPORhMOqd51A8lQUNIf/+c=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=LLWNbVGCdhV+AlpLZ8DXMasWsKfCFib0fmFrH5/JpLlzT79LP9SOtdENr8qoruzXf9 v0+EtYMF0c2rjvR8FkZCYCl/GfZWd773R0GAUTunaa3fPjV8dpl5wUVZlRbZe/L1Ezym ZNv3ELiE2Kicqj6yaC4rGBQSdIbLJxPbdFDs+w7nArUnbAw5p7D3bdZCuV5Cl6T83AXq DW/fQuEKO5BTY2S6CNSBRJf9+dIHtdnZybg/54e07uJB1PjhMVgh98PlM8NRtknlKDR9 0YMe1XWgCCq59lKRoCmC7HVdG9sGjvpqvt5V5a2w27ZZmjccUL383ZtMH6SLFYmZSV4q HTbg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id b2-20020a655cc2000000b0055be9526b7fsi935188pgt.416.2023.08.03.19.33.52; Thu, 03 Aug 2023 19:34:05 -0700 (PDT) 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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233034AbjHDCKd (ORCPT + 99 others); Thu, 3 Aug 2023 22:10:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36440 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231593AbjHDCKV (ORCPT ); Thu, 3 Aug 2023 22:10:21 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id DDA014495; Thu, 3 Aug 2023 19:10:19 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4RH8Gk3Lc8ztRQF; Fri, 4 Aug 2023 10:06:54 +0800 (CST) Received: from localhost.localdomain (10.67.174.95) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 10:10:17 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v5 3/7] perf record: Move setting dummy tracking before record__init_thread_masks() Date: Fri, 4 Aug 2023 02:07:37 +0000 Message-ID: <20230804020741.99806-4-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230804020741.99806-1-yangjihong1@huawei.com> References: <20230804020741.99806-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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: INBOX X-GMAIL-THRID: 1773264117852898032 X-GMAIL-MSGID: 1773264117852898032 When dummy tracking go system wide, the mmap cpu mask is changed. Therefore, needs to be placed before record__init_thread_masks(). Dummy tracking has been set in record__open(), move it before record__init_thread_masks() and add a helper for unified processing. The sys_perf_event_open invoked is as follows: # perf --debug verbose=3 record -e cpu-clock -D 100 true Opening: cpu-clock ------------------------------------------------------------ perf_event_attr: type 1 (PERF_TYPE_SOFTWARE) size 136 config 0 (PERF_COUNT_SW_CPU_CLOCK) { sample_period, sample_freq } 4000 sample_type IP|TID|TIME|PERIOD|IDENTIFIER read_format ID|LOST disabled 1 inherit 1 freq 1 sample_id_all 1 exclude_guest 1 ------------------------------------------------------------ sys_perf_event_open: pid 10318 cpu 0 group_fd -1 flags 0x8 = 5 sys_perf_event_open: pid 10318 cpu 1 group_fd -1 flags 0x8 = 6 sys_perf_event_open: pid 10318 cpu 2 group_fd -1 flags 0x8 = 7 sys_perf_event_open: pid 10318 cpu 3 group_fd -1 flags 0x8 = 9 sys_perf_event_open: pid 10318 cpu 4 group_fd -1 flags 0x8 = 10 sys_perf_event_open: pid 10318 cpu 5 group_fd -1 flags 0x8 = 11 sys_perf_event_open: pid 10318 cpu 6 group_fd -1 flags 0x8 = 12 sys_perf_event_open: pid 10318 cpu 7 group_fd -1 flags 0x8 = 13 Opening: dummy:u ------------------------------------------------------------ perf_event_attr: type 1 (PERF_TYPE_SOFTWARE) size 136 config 0x9 (PERF_COUNT_SW_DUMMY) { sample_period, sample_freq } 1 sample_type IP|TID|TIME|IDENTIFIER read_format ID|LOST disabled 1 inherit 1 exclude_kernel 1 exclude_hv 1 mmap 1 comm 1 enable_on_exec 1 task 1 sample_id_all 1 exclude_guest 1 mmap2 1 comm_exec 1 ksymbol 1 bpf_event 1 ------------------------------------------------------------ sys_perf_event_open: pid 10318 cpu 0 group_fd -1 flags 0x8 = 14 sys_perf_event_open: pid 10318 cpu 1 group_fd -1 flags 0x8 = 15 sys_perf_event_open: pid 10318 cpu 2 group_fd -1 flags 0x8 = 16 sys_perf_event_open: pid 10318 cpu 3 group_fd -1 flags 0x8 = 17 sys_perf_event_open: pid 10318 cpu 4 group_fd -1 flags 0x8 = 18 sys_perf_event_open: pid 10318 cpu 5 group_fd -1 flags 0x8 = 19 sys_perf_event_open: pid 10318 cpu 6 group_fd -1 flags 0x8 = 20 sys_perf_event_open: pid 10318 cpu 7 group_fd -1 flags 0x8 = 21 Signed-off-by: Yang Jihong Acked-by: Adrian Hunter --- tools/perf/builtin-record.c | 59 +++++++++++++++++++++++-------------- 1 file changed, 37 insertions(+), 22 deletions(-) diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index ca83599cc50c..3ff9d972225e 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -908,6 +908,37 @@ static int record__config_off_cpu(struct record *rec) return off_cpu_prepare(rec->evlist, &rec->opts.target, &rec->opts); } +static int record__config_tracking_events(struct record *rec) +{ + struct record_opts *opts = &rec->opts; + struct evlist *evlist = rec->evlist; + struct evsel *evsel; + + /* + * For initial_delay, system wide or a hybrid system, we need to add a + * dummy event so that we can track PERF_RECORD_MMAP to cover the delay + * of waiting or event synthesis. + */ + if (opts->target.initial_delay || target__has_cpu(&opts->target) || + perf_pmus__num_core_pmus() > 1) { + evsel = evlist__findnew_tracking_event(evlist, false); + if (!evsel) + return -ENOMEM; + + /* + * Enable the dummy event when the process is forked for + * initial_delay, immediately for system wide. + */ + if (opts->target.initial_delay && !evsel->immediate && + !target__has_cpu(&opts->target)) + evsel->core.attr.enable_on_exec = 1; + else + evsel->immediate = 1; + } + + return 0; +} + static bool record__kcore_readable(struct machine *machine) { char kcore[PATH_MAX]; @@ -1288,28 +1319,6 @@ static int record__open(struct record *rec) struct record_opts *opts = &rec->opts; int rc = 0; - /* - * For initial_delay, system wide or a hybrid system, we need to add a - * dummy event so that we can track PERF_RECORD_MMAP to cover the delay - * of waiting or event synthesis. - */ - if (opts->target.initial_delay || target__has_cpu(&opts->target) || - perf_pmus__num_core_pmus() > 1) { - pos = evlist__findnew_tracking_event(evlist, false); - if (!pos) - return -ENOMEM; - - /* - * Enable the dummy event when the process is forked for - * initial_delay, immediately for system wide. - */ - if (opts->target.initial_delay && !pos->immediate && - !target__has_cpu(&opts->target)) - pos->core.attr.enable_on_exec = 1; - else - pos->immediate = 1; - } - evlist__config(evlist, opts, &callchain_param); evlist__for_each_entry(evlist, pos) { @@ -4235,6 +4244,12 @@ int cmd_record(int argc, const char **argv) goto out; } + err = record__config_tracking_events(rec); + if (err) { + pr_err("record__config_tracking_events failed, error %d\n", err); + goto out; + } + err = record__init_thread_masks(rec); if (err) { pr_err("Failed to initialize parallel data streaming masks\n"); From patchwork Fri Aug 4 02:07:38 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 130914 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1530291vqx; Thu, 3 Aug 2023 19:21:31 -0700 (PDT) X-Google-Smtp-Source: APBJJlHemfNI4G8Vu71mWQzMFq/VEk+QUJAPNcWO/w9132ykUYqpRlMyZC2nPYnnXN1Vtfhhi12R X-Received: by 2002:a17:906:73dd:b0:998:bac1:3bdd with SMTP id n29-20020a17090673dd00b00998bac13bddmr14565964ejl.2.1691115691221; Thu, 03 Aug 2023 19:21:31 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691115691; cv=none; d=google.com; s=arc-20160816; b=BcI4OlQYAnuV0lKmXbt598o6mKV8/tJ04fU6EalRaHsSPIC1QL7y91bVFZduJ5D4bP 8mkg/LXTEmxLQuPZz3jcTMdsNo1Dlm9uo1G2D+Gs3CVt33nWAz1sBilKIlKxryaETeK0 zmFncpcpQBdNbs+pZtgPbX4I2GgWNQb/bvKIb1LQ9sruHi2vTvHtEIVGJzzIFJW6nfj1 yrf6BVPGIOK6KicyyOji3zYc3q8xyi8gI7TE7eHjpusyRQpmlgHVVycM635InO+6nbGH NgW+F6aP6MGM5SoubWZ7POLbWVigxtl7xbNufpVBlbkqC5iNk5Hd5iMEozJtIu/SRavA 4shQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=FlJSEXX3ZMQnsz+chc78X7F+M304AN1pg8R6rn/dJjc=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=UmNrQmrtX56FKVJFr4GphoNtyQT7lTGNdnNLQ9/imby+FJF3gN583Y8TF+R9ihhVWy jb0km987xwZA3P4wd03TaT7F8kjVg0wYClySPn3BpZuaH0Pra1KRu2r/mJ72Kfs+D8JG JIKrFfiTWMJnm17FWcDN45Bl0h6d7fcG2ifZUw+EZHUbA4pfjMEZetU9Q3xCe/mXjTeQ +4AzofaJVxXorvJc7pZGvce2zNJM2jdvTISYPkYCsiD/VA4xreXtiJeREVfRx0Drh199 JvCjiEMm5roiFW0CZXh76EqozAD3tTIWz9AoseA08Rg/arPylPRdDzsSjZNvEMbguwnl 25hA== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id k13-20020a170906054d00b00997cc1ef3d3si805570eja.375.2023.08.03.19.21.08; Thu, 03 Aug 2023 19:21:31 -0700 (PDT) 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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233076AbjHDCKg (ORCPT + 99 others); Thu, 3 Aug 2023 22:10:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231478AbjHDCKV (ORCPT ); Thu, 3 Aug 2023 22:10:21 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 77C13A3; Thu, 3 Aug 2023 19:10:20 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4RH8Gl06vNztRpT; Fri, 4 Aug 2023 10:06:54 +0800 (CST) Received: from localhost.localdomain (10.67.174.95) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 10:10:17 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v5 4/7] perf record: Track sideband events for all CPUs when tracing selected CPUs Date: Fri, 4 Aug 2023 02:07:38 +0000 Message-ID: <20230804020741.99806-5-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230804020741.99806-1-yangjihong1@huawei.com> References: <20230804020741.99806-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE,URIBL_BLOCKED autolearn=ham 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: INBOX X-GMAIL-THRID: 1773263326921576925 X-GMAIL-MSGID: 1773263326921576925 User space tasks can migrate between CPUs, we need to track side-band events for all CPUs. The specific scenarios are as follows: CPU0 CPU1 perf record -C 0 start taskA starts to be created and executed -> PERF_RECORD_COMM and PERF_RECORD_MMAP events only deliver to CPU1 ...... | migrate to CPU0 | Running on CPU0 <----------/ ... perf record -C 0 stop Now perf samples the PC of taskA. However, perf does not record the PERF_RECORD_COMM and PERF_RECORD_MMAP events of taskA. Therefore, the comm and symbols of taskA cannot be parsed. The solution is to record sideband events for all CPUs when tracing selected CPUs. Because this modifies the default behavior, add related comments to the perf record man page. The sys_perf_event_open invoked is as follows: # perf --debug verbose=3 record -e cpu-clock -C 1 true Opening: cpu-clock ------------------------------------------------------------ perf_event_attr: type 1 (PERF_TYPE_SOFTWARE) size 136 config 0 (PERF_COUNT_SW_CPU_CLOCK) { sample_period, sample_freq } 4000 sample_type IP|TID|TIME|CPU|PERIOD|IDENTIFIER read_format ID|LOST disabled 1 inherit 1 freq 1 sample_id_all 1 exclude_guest 1 ------------------------------------------------------------ sys_perf_event_open: pid -1 cpu 1 group_fd -1 flags 0x8 = 5 Opening: dummy:u ------------------------------------------------------------ perf_event_attr: type 1 (PERF_TYPE_SOFTWARE) size 136 config 0x9 (PERF_COUNT_SW_DUMMY) { sample_period, sample_freq } 1 sample_type IP|TID|TIME|CPU|IDENTIFIER read_format ID|LOST inherit 1 exclude_kernel 1 exclude_hv 1 mmap 1 comm 1 task 1 sample_id_all 1 exclude_guest 1 mmap2 1 comm_exec 1 ksymbol 1 bpf_event 1 ------------------------------------------------------------ sys_perf_event_open: pid -1 cpu 0 group_fd -1 flags 0x8 = 6 sys_perf_event_open: pid -1 cpu 1 group_fd -1 flags 0x8 = 7 sys_perf_event_open: pid -1 cpu 2 group_fd -1 flags 0x8 = 9 sys_perf_event_open: pid -1 cpu 3 group_fd -1 flags 0x8 = 10 sys_perf_event_open: pid -1 cpu 4 group_fd -1 flags 0x8 = 11 sys_perf_event_open: pid -1 cpu 5 group_fd -1 flags 0x8 = 12 sys_perf_event_open: pid -1 cpu 6 group_fd -1 flags 0x8 = 13 sys_perf_event_open: pid -1 cpu 7 group_fd -1 flags 0x8 = 14 Signed-off-by: Yang Jihong Acked-by: Adrian Hunter --- tools/perf/Documentation/perf-record.txt | 3 ++ tools/perf/builtin-record.c | 44 +++++++++++++++++++++++- 2 files changed, 46 insertions(+), 1 deletion(-) diff --git a/tools/perf/Documentation/perf-record.txt b/tools/perf/Documentation/perf-record.txt index 680396c56bd1..dac53ece51ab 100644 --- a/tools/perf/Documentation/perf-record.txt +++ b/tools/perf/Documentation/perf-record.txt @@ -388,6 +388,9 @@ comma-separated list with no space: 0,1. Ranges of CPUs are specified with -: 0- In per-thread mode with inheritance mode on (default), samples are captured only when the thread executes on the designated CPUs. Default is to monitor all CPUs. +User space tasks can migrate between CPUs, so when tracing selected CPUs, +a dummy event is created to track sideband for all CPUs. + -B:: --no-buildid:: Do not save the build ids of binaries in the perf.data files. This skips diff --git a/tools/perf/builtin-record.c b/tools/perf/builtin-record.c index 3ff9d972225e..e575b5e295a2 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -908,10 +908,44 @@ static int record__config_off_cpu(struct record *rec) return off_cpu_prepare(rec->evlist, &rec->opts.target, &rec->opts); } +static bool record__tracking_system_wide(struct record *rec) +{ + struct record_opts *opts = &rec->opts; + struct evlist *evlist = rec->evlist; + struct evsel *evsel; + + /* + * If all (non-dummy) evsel have exclude_user, + * system_wide is not needed. + * + * all_kernel and all_user will overwrite exclude_kernel and + * exclude_user of attr in evsel__config(), here need to check + * all the three items. + * + * Sideband system wide if one of the following conditions is met: + * + * - all_user is set, and there is a non-dummy event + * - all_user and all_kernel are not set, and there is + * a non-dummy event without exclude_user + */ + if (opts->all_kernel) + return false; + + evlist__for_each_entry(evlist, evsel) { + if (!evsel__is_dummy_event(evsel)) { + if (opts->all_user || !evsel->core.attr.exclude_user) + return true; + } + } + + return false; +} + static int record__config_tracking_events(struct record *rec) { struct record_opts *opts = &rec->opts; struct evlist *evlist = rec->evlist; + bool system_wide = false; struct evsel *evsel; /* @@ -921,7 +955,15 @@ static int record__config_tracking_events(struct record *rec) */ if (opts->target.initial_delay || target__has_cpu(&opts->target) || perf_pmus__num_core_pmus() > 1) { - evsel = evlist__findnew_tracking_event(evlist, false); + + /* + * User space tasks can migrate between CPUs, so when tracing + * selected CPUs, sideband for all CPUs is still needed. + */ + if (!!opts->target.cpu_list && record__tracking_system_wide(rec)) + system_wide = true; + + evsel = evlist__findnew_tracking_event(evlist, system_wide); if (!evsel) return -ENOMEM; From patchwork Fri Aug 4 02:07:39 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 130916 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1530580vqx; Thu, 3 Aug 2023 19:22:24 -0700 (PDT) X-Google-Smtp-Source: APBJJlGomjLohei/TdwWT2nNxS+bGGflpj+eTBsEd72wm/yuC6L3+VBFPj/R6m9DdlglCoj934h6 X-Received: by 2002:a17:906:20d0:b0:993:eed1:8f7 with SMTP id c16-20020a17090620d000b00993eed108f7mr14627177ejc.3.1691115744667; Thu, 03 Aug 2023 19:22:24 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691115744; cv=none; d=google.com; s=arc-20160816; b=J6GxNEcEcruhd+HIv9vaV9k0a9CJ3FmeDIq9UgEB0Zikq6xusGR5vqEzbz5t7Wqzx4 7pBDicHPOY52nj6lHwNmFN4y2rySVz5kOaPUbRYEgmEJEYzobTHsOJC89ij78mN7p6QK ZoSw6/2dU3ELUiKycxmGlUwA4f2Vg+o5yAp38+1xz/KL7Q4H7GJBsxLgP+0fUc8EoENI JpJTM7ncqrrN12ZDVa+sBwe5qQ/s57cf4HyAvtIMT2orNdCbp0/dt47uv7ykv+guaQHe SY0AXC/5BpqXaP69zdZRyCE34dFXgyoanEZnDubI8VuP/ZQHEN0FHbjYu1g5rSTVmD7B OyVQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=rlpFh+0WlV9zQNK8fvdxNzunIkW3lUo5cRy2F8JYC4g=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=NhuDK0wNE1KxsTVL7E9JBSE7ryQBoQonCQbRCvmbRf3OgpZa5YxfPmRD6gGX/Xt1J/ zb+w3cSPbT3crEqlnBzCTKVJ/q0tP9trbTLrUlpLfqYxSIXxoslMsKH2X75D7x9+qetZ rFnDfkGlQfgp/i0H/MsMYSm324BxKno7uvXN6m+UKSX9oxNuP8crEwkqH8Q81ZrCWdDF NjSYegWMIc8pIlHJWEyDzxB5FMlYC02uYLAhFvYBVP9W8ThvGV+2FHdzFprA7opltFZK tn71gBN8bOtA7yTpffxo1KYONBi0e4f4+2Jgk8xsfdkMheorbGamT3O+e8wriVOpxjfz 4BNw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id i8-20020a170906114800b0098761ff7860si525152eja.635.2023.08.03.19.22.01; Thu, 03 Aug 2023 19:22:24 -0700 (PDT) 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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233098AbjHDCKl (ORCPT + 99 others); Thu, 3 Aug 2023 22:10:41 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36444 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231903AbjHDCKV (ORCPT ); Thu, 3 Aug 2023 22:10:21 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id EB78E448F; Thu, 3 Aug 2023 19:10:20 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.55]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4RH8Jc0kMczVjn8; Fri, 4 Aug 2023 10:08:32 +0800 (CST) Received: from localhost.localdomain (10.67.174.95) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 10:10:18 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v5 5/7] perf test: Update base-record & system-wide-dummy attr expected values for test-record-C0 Date: Fri, 4 Aug 2023 02:07:39 +0000 Message-ID: <20230804020741.99806-6-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230804020741.99806-1-yangjihong1@huawei.com> References: <20230804020741.99806-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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: INBOX X-GMAIL-THRID: 1773263383101238729 X-GMAIL-MSGID: 1773263383101238729 1. Because a dummy sideband event is added to the sampling of specified CPUs. When evlist contains evsel of different sample_type, evlist__config() will change the default PERF_SAMPLE_ID bit to PERF_SAMPLE_IDENTIFICATION bit. The attr sample_type expected value of base-record and system-wide-dummy in test-record-C0 needs to be updated. 2. The perf record uses evlist__add_aux_dummy() instead of evlist__add_dummy() to add a dummy event. The expected value of system-wide-dummy attr needs to be updated. The perf test result is as follows: # ./perf test list 2>&1 | grep 'Setup struct perf_event_attr' 17: Setup struct perf_event_attr # ./perf test 17 17: Setup struct perf_event_attr : Ok Signed-off-by: Yang Jihong Tested-by: Adrian Hunter --- tools/perf/tests/attr/system-wide-dummy | 14 ++++++++------ tools/perf/tests/attr/test-record-C0 | 4 ++-- 2 files changed, 10 insertions(+), 8 deletions(-) diff --git a/tools/perf/tests/attr/system-wide-dummy b/tools/perf/tests/attr/system-wide-dummy index 2f3e3eb728eb..a1e1d6a263bf 100644 --- a/tools/perf/tests/attr/system-wide-dummy +++ b/tools/perf/tests/attr/system-wide-dummy @@ -9,8 +9,10 @@ flags=8 type=1 size=136 config=9 -sample_period=4000 -sample_type=455 +sample_period=1 +# PERF_SAMPLE_IP | PERF_SAMPLE_TID | PERF_SAMPLE_TIME | +# PERF_SAMPLE_CPU | PERF_SAMPLE_IDENTIFIER +sample_type=65671 read_format=4|20 # Event will be enabled right away. disabled=0 @@ -18,12 +20,12 @@ inherit=1 pinned=0 exclusive=0 exclude_user=0 -exclude_kernel=0 -exclude_hv=0 +exclude_kernel=1 +exclude_hv=1 exclude_idle=0 mmap=1 comm=1 -freq=1 +freq=0 inherit_stat=0 enable_on_exec=0 task=1 @@ -32,7 +34,7 @@ precise_ip=0 mmap_data=0 sample_id_all=1 exclude_host=0 -exclude_guest=0 +exclude_guest=1 exclude_callchain_kernel=0 exclude_callchain_user=0 mmap2=1 diff --git a/tools/perf/tests/attr/test-record-C0 b/tools/perf/tests/attr/test-record-C0 index 317730b906dd..198e8429a1bf 100644 --- a/tools/perf/tests/attr/test-record-C0 +++ b/tools/perf/tests/attr/test-record-C0 @@ -10,9 +10,9 @@ cpu=0 enable_on_exec=0 # PERF_SAMPLE_IP | PERF_SAMPLE_TID | PERF_SAMPLE_TIME | -# PERF_SAMPLE_ID | PERF_SAMPLE_PERIOD +# PERF_SAMPLE_PERIOD | PERF_SAMPLE_IDENTIFIER # + PERF_SAMPLE_CPU added by -C 0 -sample_type=455 +sample_type=65927 # Dummy event handles mmaps, comm and task. mmap=0 From patchwork Fri Aug 4 02:07:40 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 130924 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1533774vqx; Thu, 3 Aug 2023 19:31:33 -0700 (PDT) X-Google-Smtp-Source: APBJJlGQU62euSmV5cpc/+GiB/0kmsk3dvIMotLIh2tjDYTNArlepDrI2/wxFFQ2sjESyGBNjufW X-Received: by 2002:a17:906:74d9:b0:993:eed1:8f0 with SMTP id z25-20020a17090674d900b00993eed108f0mr15283221ejl.3.1691116293192; Thu, 03 Aug 2023 19:31:33 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691116293; cv=none; d=google.com; s=arc-20160816; b=QeVHCLCg6LHAaJAcSSX+UQ3Y5jxRrWXQcbDLOiz9hprIwo5g0UcdNXspBCkUwDEnYs h8z8hMmdYiWT8YAjmXV9vQJFrjbrczicyVwKaBqAoLwv2r1YF03Su4Qd+ie6I/M4Wl8n hz5H7ZSqq6RZJB9uPgvVM7af0V5OFX0EEQUUzFn+kOX/7FYo8r33ybqHMQFR2rJTqJCV OX4MjrDpGu9KkjnH/3gGUsxajK8i0dQcWlutq+MV3NTcBpcaP8LyYsmEo8scnCay8Zir TomkxKU6mXlwyukOOFonWG97C8bZCxO6iZD6L0AL4alR+WnqvSMi6cWYozfaM+WbqT9v XUAw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=iejwYS8mXOE1t7MAlx0EeafSG2w9VAh+amsIpKvufsg=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=jypaBz/zNYaFEtvqKZBqrQej2z9rEnB0EBPxFmTcMvQrOXLtq0sY4ODX4Rpa5PCeFO 2w6SAm5cbQeTU8y1r3a1v9OLgegKOCRI5PilqiNLoyYvlOZQnxiXRhn+eI7XsxalQC4A f55FVpQImSblcRQNFBJrgtukfkOwR0AtlRoYAkeDVOGz0I+zPOQsZN/lTVuCb2vewrpx 3w29X9uZ8cH3uyDJnXk7tCzMtYykyvf4jahKA94Q6KAveDk/Qb3lPRnZbm5Q6LAp53oQ fCCLdynfsd6qaZ/EZT81ustxGRCKjuJa2a9WC+Zj9x78wQtQROtlxtSx4ZL47HAXfZs6 w+dg== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id m21-20020a170906721500b0099bc0489b51si896504ejk.28.2023.08.03.19.31.09; Thu, 03 Aug 2023 19:31:33 -0700 (PDT) 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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233114AbjHDCKo (ORCPT + 99 others); Thu, 3 Aug 2023 22:10:44 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36454 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S231953AbjHDCKW (ORCPT ); Thu, 3 Aug 2023 22:10:22 -0400 Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id AB8244494; Thu, 3 Aug 2023 19:10:21 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.56]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4RH8HW2BhWzJrSH; Fri, 4 Aug 2023 10:07:35 +0800 (CST) Received: from localhost.localdomain (10.67.174.95) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 10:10:19 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v5 6/7] perf test: Add test case for record sideband events Date: Fri, 4 Aug 2023 02:07:40 +0000 Message-ID: <20230804020741.99806-7-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230804020741.99806-1-yangjihong1@huawei.com> References: <20230804020741.99806-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H2,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham 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: INBOX X-GMAIL-THRID: 1773263958397302377 X-GMAIL-MSGID: 1773263958397302377 Add a new test case to record sideband events for all CPUs when tracing selected CPUs Test result: # ./perf test list 2>&1 | grep 'perf record sideband tests' 95: perf record sideband tests # ./perf test 95 95: perf record sideband tests : Ok Signed-off-by: Yang Jihong Tested-by: Adrian Hunter --- tools/perf/tests/shell/record_sideband.sh | 44 +++++++++++++++++++++++ 1 file changed, 44 insertions(+) create mode 100755 tools/perf/tests/shell/record_sideband.sh diff --git a/tools/perf/tests/shell/record_sideband.sh b/tools/perf/tests/shell/record_sideband.sh new file mode 100755 index 000000000000..2ecf00011cb1 --- /dev/null +++ b/tools/perf/tests/shell/record_sideband.sh @@ -0,0 +1,44 @@ +#!/bin/sh +# perf record sideband tests +# SPDX-License-Identifier: GPL-2.0 + +set -e + +err=0 +perfdata=$(mktemp /tmp/__perf_test.perf.data.XXXXX) + +can_cpu_wide() +{ + if ! perf record -o ${perfdata} -BN --no-bpf-event -C $1 true 2>&1 >/dev/null + then + echo "record sideband test [Skipped cannot record cpu$1]" + err=2 + fi + + rm -f ${perfdata} + return $err +} + +test_system_wide_tracking() +{ + # Need CPU 0 and CPU 1 + can_cpu_wide 0 || return 0 + can_cpu_wide 1 || return 0 + + # Record on CPU 0 a task running on CPU 1 + perf record -BN --no-bpf-event -o ${perfdata} -C 0 -- taskset --cpu-list 1 true + + # Should get MMAP events from CPU 1 + mmap_cnt=`perf script -i ${perfdata} --show-mmap-events -C 1 2>/dev/null | grep MMAP | wc -l` + + rm -f ${perfdata} + + if [ ${mmap_cnt} -gt 0 ] ; then + return 0 + fi + + echo "Failed to record MMAP events on CPU 1 when tracing CPU 0" + return 1 +} + +test_system_wide_tracking From patchwork Fri Aug 4 02:07:41 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 130912 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9f41:0:b0:3e4:2afc:c1 with SMTP id v1csp1527652vqx; Thu, 3 Aug 2023 19:13:35 -0700 (PDT) X-Google-Smtp-Source: APBJJlFXUtAjxwmekYhz3vZFr+8pFXpnpNsUBC2EpSj8JFa7dcNYnrcuFojb5jQG6PWcVCl7X4YG X-Received: by 2002:a05:6402:430b:b0:521:66b4:13b4 with SMTP id m11-20020a056402430b00b0052166b413b4mr16898727edc.0.1691115214871; Thu, 03 Aug 2023 19:13:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1691115214; cv=none; d=google.com; s=arc-20160816; b=ESenwT7jmsFQVaIEM6C7/SI3oqw+MkCMNgPWcniuC8xTkS63ZFR9QMvNfKF+jcVaUX TXFFFqov0A9aHGb/k2jLJhhBEi8c0l571JNMyRuyX5oFEX0x/YCLoKCDgfoDBdqWp14+ aXLabp0zmGvoQs8/ZRj1IPC70R35upx8Ym0hzKyWwZfqy+HptYq9FuzY9RnC1Ov5LrDc hnj4AQDuWQegufvyRr6tE37AURo6s+c6aarvpbqddtaa3ACqfoiX6xoHiMsbfjB2i6Qt h8R9hIDyDCUPoCA9jI8bu8G6HP6m+EItsGmxstp+OauZUVJuaIB1JiO3wtLRYNwWhoFU +heg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:message-id:date:subject:cc:to:from; bh=RnrXaza/mNjAZ2eJiW1Z9i32eoiXz6WN7DCQbefeO70=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=guu0DBl4ABF+/EutkAzbHCYaCZ0mNIz1SbYgEhFf8OHcLyfXT0qeHigNvil4dw22LA 3kOXCPzjtXrx7ej1yUeE/QL2xvf7VQhCubmcpaQyuAU+pyBVPOshpJzsaEgm01HA+2tC p3yGSjToSA6HdgnmYikGqNUrpUYlZWeiGSW9YnPA8AkN78FK4z2hzQ1Vlvi5/nXKB9gz ZmIBoIr2w1lJ7sNYFybt8pB1YDr0Wn1BrLQdQiOxbLA6tjqv4QAIy/pP5kd0T/c9+rsn 5nk94g/4JS+focF6lt9qTS3TCYIBZifivdM5wk5rMbgGCp2AgXWO8SlWX+EUxmcROP4P ixyw== ARC-Authentication-Results: i=1; mx.google.com; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id j16-20020aa7ca50000000b0051e04ea21ebsi796670edt.202.2023.08.03.19.13.10; Thu, 03 Aug 2023 19:13:34 -0700 (PDT) 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; 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=fail (p=QUARANTINE sp=QUARANTINE dis=NONE) header.from=huawei.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233157AbjHDCKs (ORCPT + 99 others); Thu, 3 Aug 2023 22:10:48 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36456 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232164AbjHDCKW (ORCPT ); Thu, 3 Aug 2023 22:10:22 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 0B1B34488; Thu, 3 Aug 2023 19:10:22 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4RH8KR271wzrS4w; Fri, 4 Aug 2023 10:09:15 +0800 (CST) Received: from localhost.localdomain (10.67.174.95) by kwepemm600003.china.huawei.com (7.193.23.202) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_128_GCM_SHA256) id 15.1.2507.27; Fri, 4 Aug 2023 10:10:19 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v5 7/7] perf test: Add perf_event_attr test for record selected CPUs exclude_user Date: Fri, 4 Aug 2023 02:07:41 +0000 Message-ID: <20230804020741.99806-8-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230804020741.99806-1-yangjihong1@huawei.com> References: <20230804020741.99806-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems706-chm.china.huawei.com (10.3.19.183) To kwepemm600003.china.huawei.com (7.193.23.202) X-CFilter-Loop: Reflected X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00, RCVD_IN_DNSWL_BLOCKED,RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL, SPF_HELO_NONE,SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=ham 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: INBOX X-GMAIL-THRID: 1773262827929649150 X-GMAIL-MSGID: 1773262827929649150 If all (non-dummy) evsel have exclude_user, system_wide sideband is not needed. Add this test scenario. Test result: # ./perf test list 2>&1 | grep 'Setup struct perf_event_attr' 17: Setup struct perf_event_attr # ./perf test 17 -v 17: Setup struct perf_event_attr : --- start --- test child forked, pid 720198 running './tests/attr/test-record-C0-all-kernel' test child finished with 0 ---- end ---- Setup struct perf_event_attr: Ok Signed-off-by: Yang Jihong Tested-by: Adrian Hunter --- .../perf/tests/attr/test-record-C0-all-kernel | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tools/perf/tests/attr/test-record-C0-all-kernel diff --git a/tools/perf/tests/attr/test-record-C0-all-kernel b/tools/perf/tests/attr/test-record-C0-all-kernel new file mode 100644 index 000000000000..2d7549277c1e --- /dev/null +++ b/tools/perf/tests/attr/test-record-C0-all-kernel @@ -0,0 +1,32 @@ +[config] +command = record +args = --no-bpf-event --all-kernel -C 0 kill >/dev/null 2>&1 +ret = 1 + +[event:base-record] +cpu=0 + +# no enable on exec for CPU attached +enable_on_exec=0 + +# PERF_SAMPLE_IP | PERF_SAMPLE_TID | PERF_SAMPLE_TIME | +# PERF_SAMPLE_PERIOD | PERF_SAMPLE_IDENTIFIER +# + PERF_SAMPLE_CPU added by -C 0 +sample_type=65927 + +# Dummy event handles mmaps, comm and task. +mmap=0 +comm=0 +task=0 + +# exclude_user for all-kernel option +exclude_user=1 + +[event:system-wide-dummy] + +# system_wide is not need for all (non-dummy) events have exclude_user +cpu=0 + +# exclude_user for all-kernel option +exclude_user=1 +exclude_kernel=0