From patchwork Sat Jul 22 09:32:13 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 124259 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp716707vqg; Sat, 22 Jul 2023 03:00:01 -0700 (PDT) X-Google-Smtp-Source: APBJJlFnDIViYM5VAQUcARYurhKQIe3zlW+Div2DdlyOLzTEbqWLmCpohE3i6Jm7noA6OznH8PRK X-Received: by 2002:a05:6a21:9986:b0:138:dbff:f0c1 with SMTP id ve6-20020a056a21998600b00138dbfff0c1mr2929715pzb.1.1690020001048; Sat, 22 Jul 2023 03:00:01 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690020001; cv=none; d=google.com; s=arc-20160816; b=Tq0dxdRZaR2Mtb5SwoyMdcGXs0fFlhxnnbuCpyOz0L8GQ7t+Uu1puhcWMkNFF0rpbe Fo1tuMy3hze9PCq6MrFZhuKrJEXKfJoyj8LEWxE2IzbQGkOPT9QjnhbTLVIX5wApn35v 7tb5kMLCk4mmmilnq2JuPuz2aOSrt/QZlNF334fMwlHKVhMddy4O1l9cUu3naN1POrV/ mQthspSx4gijnv5EC0uyZmiTcIb1RGOxBGrsJ8zlkGl+jRz4b/cAOx1dq9a40iXFQMQZ Qn31oKYOYM3zpSsICrs67MIcA7pvXLRQrfGAW9EkmNZX4TuJKnp3w04JeZaDerqJdjIs jjmA== 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=N1hVCV7fdIxzSuYBD0K9kXojPgR5hQ+2w72U2pd/hagTjDq02v3D0LOwv7ICRruT2y gysMTY0yXAFcZjqFTkb9R4cZ6+0klecwKTyUtkC5CbIzZ3IjcXbeuiTDeQAMQ8AgbIr/ l48wUbMeIh/w3OAesZ7tJgbjozKgY8vDxwDOkDqpzNBky9HBw9WfS8HZ9pWad2Y13EZT m3gr5a0ZKrb2KprGYhjaeaCwKDQsaca34uz2JBkt0rH7kNZlZpEMYKp2fPsWK8chdqOp 50+mx4oi1fpFSA/0LiQC1zfl210xmBkjlVGyHGK7pjlq24n2EQZTpxq1NAfIPaTry0rT phfg== 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 i4-20020a633c44000000b0053fbacdaf5asi4819766pgn.759.2023.07.22.02.59.48; Sat, 22 Jul 2023 03:00:01 -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 S229983AbjGVJeu (ORCPT + 99 others); Sat, 22 Jul 2023 05:34:50 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56346 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229601AbjGVJer (ORCPT ); Sat, 22 Jul 2023 05:34:47 -0400 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 981D230E3; Sat, 22 Jul 2023 02:34:44 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.55]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4R7LpV1zGkz18LXB; Sat, 22 Jul 2023 17:33: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; Sat, 22 Jul 2023 17:34:41 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v3 1/7] perf evlist: Add perf_evlist__go_system_wide() helper Date: Sat, 22 Jul 2023 09:32:13 +0000 Message-ID: <20230722093219.174898-2-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230722093219.174898-1-yangjihong1@huawei.com> References: <20230722093219.174898-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) 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: 1772114412387339400 X-GMAIL-MSGID: 1772114412387339400 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 --- 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 Sat Jul 22 09:32:14 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 124262 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp725523vqg; Sat, 22 Jul 2023 03:22:19 -0700 (PDT) X-Google-Smtp-Source: APBJJlF9uUkE+/CwOkbV8OMDl0jiXkc4UgYxSd11hhcdLHbbzYHc2RTsOjMjisvWSueFXWZvWPnh X-Received: by 2002:a17:906:11a:b0:991:fef4:bb9 with SMTP id 26-20020a170906011a00b00991fef40bb9mr4211809eje.58.1690021339306; Sat, 22 Jul 2023 03:22:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690021339; cv=none; d=google.com; s=arc-20160816; b=KAV7Ee9xptmVmF/Ldog4PUELoAPv5F3yFBrrcyo8aYlMY/KjzmMNvHXSq1YYH5uegc Kk62qYeQXo6D9xRKN+w2lF7xCPSQ5VKOSAEE+kcRAS9NmKPnvGFF8YVU/ViGhhICXZUm /FwhQUkLGHF7nrYbs+xaw6JhQl0f+BbXBlMerpzcXi7DehufQnMp5n4IJ7mm8yAGzDDR eVGcG3BY3krODhxD7ilxNYNT8NspYojAAbeFlS1bYI6Q4B+YCX07EHE5QQwQLv7WlYJg Uls+FM2H4SXxbz8kiRmtSzMPtIOUPRNPofwwMHpjSqJ+fN3o8USpvFF4P0XFGgEsCXzH E6qA== 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=W6mxo3esvEugrZS2H1qCmsOS0i821c1vP3opeKM4CvkhI4+GkUvlzR0MTuYXPmbgfz zsSko+5hGaGrm/WdnQUUP2tSXGYTdEoFEAxuh2Tl8EVSLdcdnhJIcMO5kKz+Q/PAcUdu YXxMluVInhOHKOPptn1zJGN5sprA3yONL56F6iZziznLh+XNd+0FSdtr5y4hujpPyoWn FnAhy33tL3L2ehtPGgufSAS18ejdBJ640lexs4+ucvYAt0TQ541XYxO4o6HpKVfmrRKb jLLPIO3bg3iYkT8NqnuPaVXq7E5IUl0+SJ8RIs8x45mtMwz6QevTI+jTzPyXq1qYc43w rXcA== 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 e20-20020a170906505400b00992a096678fsi3537628ejk.813.2023.07.22.03.21.54; Sat, 22 Jul 2023 03:22:19 -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 S229763AbjGVJfN (ORCPT + 99 others); Sat, 22 Jul 2023 05:35:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229779AbjGVJes (ORCPT ); Sat, 22 Jul 2023 05:34:48 -0400 Received: from szxga02-in.huawei.com (szxga02-in.huawei.com [45.249.212.188]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A1B4A30EC; Sat, 22 Jul 2023 02:34:45 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.54]) by szxga02-in.huawei.com (SkyGuard) with ESMTP id 4R7Lnk3nf7zVjHV; Sat, 22 Jul 2023 17:33:14 +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; Sat, 22 Jul 2023 17:34:41 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v3 2/7] perf evlist: Add evlist__findnew_tracking_event() helper Date: Sat, 22 Jul 2023 09:32:14 +0000 Message-ID: <20230722093219.174898-3-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230722093219.174898-1-yangjihong1@huawei.com> References: <20230722093219.174898-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) 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: 1772115815886740671 X-GMAIL-MSGID: 1772115815886740671 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 --- 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 Sat Jul 22 09:32:15 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 124258 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp711568vqg; Sat, 22 Jul 2023 02:40:23 -0700 (PDT) X-Google-Smtp-Source: APBJJlG59QqhQSUqgW9u7ry2k+e/A16KhC5gFnCRCkASDrI3zsfs4gXCo52w0OK6KjaoTnnLWtln X-Received: by 2002:a25:aac7:0:b0:cf9:7017:fd9a with SMTP id t65-20020a25aac7000000b00cf97017fd9amr3804780ybi.12.1690018823074; Sat, 22 Jul 2023 02:40:23 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690018823; cv=none; d=google.com; s=arc-20160816; b=IgBGZ9oB1SxhBqLSrdyC4uoVsf7A53KqomoDj5lc2aNHJthmXbdi4e1OSFTtV1eZCC 0b04qq2OxHa4V2+qNSrm9wAa1qw6Gj26xGX7sakEMOV4c0hA0Fe3SLX4zuckuMfkHc0h TNkGYbAR0QfRrne2fFo3cAq9+6VY+qAZav3t11vZlzDUd+mYYA455bFzDshWiqXd/HBu XXANBP8kyhsRajrngkEck4QwbB1kQ6+uigUb0lTuglXjY8bW+V2k3RD1ndQ/PdfK7USh dnwtXz8U6B1LI39I6ss4d8yOFCp3gM5DaClc+Y1Ww3kkeq8jVgeqaLdykYMcN5KV07Rm ddGA== 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=rtaIItrxAqLZbNi1JSCXrr15imjzxCfJ0nCYDwn676iorgTuON0+ljDAVrqpSL9ARp 1ZExyXqso5KBaBdxnD1SZmJmGLsclNclIbmupJ4xqdLS7WeUE0s7SKIqY8S9MFwO1rvR wTFw9Ti3tJIQCPQhCW0NbZYFfsqC7ZEgCbV1X5MhnH6Fq4sJbY40Z6jk0m56SITXhXH+ E5uidskRu99hXLBp1HSmt5PLENCKHIaZKjSzBeqQN4HZpoAmlt7P6TjnD7YV+S5rKj1l RbDYjcmssUDQw2Hkkp0fDp3AD9fA7ODjaoGW2+54198xdEHga2TfqbXX3Qzh0BkWVk7M iVSg== 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 ke11-20020a170903340b00b001b9fef6bf58si4573336plb.294.2023.07.22.02.40.08; Sat, 22 Jul 2023 02:40:23 -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 S229861AbjGVJfH (ORCPT + 99 others); Sat, 22 Jul 2023 05:35:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56356 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229763AbjGVJes (ORCPT ); Sat, 22 Jul 2023 05:34:48 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 6B0B630E7; Sat, 22 Jul 2023 02:34:45 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.57]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4R7Lln1QtxztRLY; Sat, 22 Jul 2023 17:31:33 +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; Sat, 22 Jul 2023 17:34:42 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v3 3/7] perf record: Move setting dummy tracking before record__init_thread_masks() Date: Sat, 22 Jul 2023 09:32:15 +0000 Message-ID: <20230722093219.174898-4-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230722093219.174898-1-yangjihong1@huawei.com> References: <20230722093219.174898-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) 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: 1772113177100728859 X-GMAIL-MSGID: 1772113177100728859 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 --- 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 Sat Jul 22 09:32:16 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 124263 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp727523vqg; Sat, 22 Jul 2023 03:28:52 -0700 (PDT) X-Google-Smtp-Source: APBJJlEYo6f90SHExzP2/wOWkysKPd0egP75oEfyNnK/tHlyhkpfF0bjB0dNERO+gz40KruQyrLw X-Received: by 2002:a17:902:7893:b0:1b9:d961:69b7 with SMTP id q19-20020a170902789300b001b9d96169b7mr4350254pll.10.1690021731935; Sat, 22 Jul 2023 03:28:51 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690021731; cv=none; d=google.com; s=arc-20160816; b=yRvl5mMVOCIV6wJ8C98XdoIPUsy3mLth1Rnk00ECTFZV5jvAkiL3N8Ucde0Pcs9qz1 GNkO31N7fIXMcZpmnJ6TAbfbCatvIvJRlJ8Hb23PmsNFrnOfKFqODhU7Kr0n4dCEUE8L 3L7diX7FG++ncakaEq/4qtYrBU6aJbrp8SDLlb3ApycKAsLlQ6TZfP3JIcBqk28ezzL1 hEOP9rLkPOfuAD4QJdUGFCdgZJ+7HthQO0iIwTJfaTMsEslkWMnmsDHkvQFLF0rT98nm bC7axpm5kHNUrw/Wa1g8eLWONQ2e9wNcfPLj1e9un3E3SSrq2F+r846RDdHhBjL7/ZoI VqiQ== 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=5ZnIEtk84GprAgAni+9Xy3W6UwXfLZPX8UXOtpQ94Hg=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=vrvijrZUOATHj247ziyUYx/uEB3IRbQpm9lIRw3q39nMLO0JM5oHiekZy7REzDLrth kXQSg5H12e9Dd+uHRLCfGMi3QCsQ0MyOKQ8bL88clfW9pil/yOKEbYKOD6nkGXgSufWp VNequfYlbBJPvOl+6B+YCo+vcIIbjki/0IDyWRHXF2/EgEN5r98YF9nXkLFUoNSExVGr oHYh9W8Jo58FHp+Lk3PWW4nTf0MhSA+IAmRDJUZW6YYh6OqqFJUhSFFk8pp9AbBK3vcj 0ba1QH/enUzBqA59NS4NQzHJvrH6Z4/vPrZDXp8254ldL/qxJoToDOeyQnvNNxuTWeXM 9dgw== 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 ks3-20020a170903084300b001b8b4330585si4609645plb.510.2023.07.22.03.28.38; Sat, 22 Jul 2023 03:28:51 -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 S230049AbjGVJfP (ORCPT + 99 others); Sat, 22 Jul 2023 05:35:15 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56364 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229805AbjGVJes (ORCPT ); Sat, 22 Jul 2023 05:34:48 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B38F430EF; Sat, 22 Jul 2023 02:34:46 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.55]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4R7LpW34g8zrRjF; Sat, 22 Jul 2023 17:33:55 +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; Sat, 22 Jul 2023 17:34:43 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v3 4/7] perf record: Track sideband events for all CPUs when tracing selected CPUs Date: Sat, 22 Jul 2023 09:32:16 +0000 Message-ID: <20230722093219.174898-5-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230722093219.174898-1-yangjihong1@huawei.com> References: <20230722093219.174898-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) 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: 1772115935790334986 X-GMAIL-MSGID: 1772116227825447354 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 --- tools/perf/Documentation/perf-record.txt | 3 +++ tools/perf/builtin-record.c | 14 +++++++++++++- 2 files changed, 16 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..4e8e97928f05 100644 --- a/tools/perf/builtin-record.c +++ b/tools/perf/builtin-record.c @@ -912,6 +912,7 @@ 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 +922,18 @@ 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 all (non-dummy) evsel have exclude_user, + * system_wide is not needed. + */ + if (!!opts->target.cpu_list && !opts->all_kernel) + system_wide = true; + + evsel = evlist__findnew_tracking_event(evlist, system_wide); if (!evsel) return -ENOMEM; From patchwork Sat Jul 22 09:32:17 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 124260 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp718046vqg; Sat, 22 Jul 2023 03:02:34 -0700 (PDT) X-Google-Smtp-Source: APBJJlHd7E8sfvwnSKpyaE2HP8XRflMdZAgbgpAO+DZrj5FLhKbhTpWXP1daLidQcxzAVDXJyOm7 X-Received: by 2002:a81:54d5:0:b0:57a:1246:5e5b with SMTP id i204-20020a8154d5000000b0057a12465e5bmr2108354ywb.38.1690020154668; Sat, 22 Jul 2023 03:02:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690020154; cv=none; d=google.com; s=arc-20160816; b=WtIEFRsDBlAplyjek1QyU1asWcmK6lpqdppVv89DUowbl4h5eGDYr2AnN7IdBnr3KX gQ/nsjgB4lf5YVEpIr1LYrZaMLgFlIwnnx6F5Psf40Boh/XjLIn4PRilTgOWBBkbCRcY RrKStkJbUOIXgqx8bnPTHinStQRde/T+GZ9fKh/B9Twn7N5uQzLBOt/x/GNbFusdUHXv bGXJbDHIMYP87xm57QtGE2im33BLhvNpoNKKwDikuhZcufg+HyEqjyWkfWr5qn4LHzro /zksD8XJzX1KYVQSWnHw/0HqDrUnM6QfNSKwydJn5dH9h0rJy6WS0iZZZlTmolZQd6Gq 5c3A== 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=oHR5DOwgcqzwW4mCFPjffsNk8C/iovPLoevFHcBfZzKRFgGNXOjcHEX7Hkxi0d7D9v XcDLcvMP41Itll0GHKzdKOdW+VaNJAMDLe9+LCmQtk1NsBHjaAQAmihfCRhTdfAKwa32 pREPV/q1FIJ/67+24ONEg7blDJK3rNNMrBbv2x1HvVjjvQCR4OXzweqkJj3v4Q6fivba zwxBe+g6N0VwKdbk+ex2vmlGPIDCAeFFUiIqX2imBiiE+dqcT7qe9sD2BpR1eWOZuLuq gxBg3M81tDM4G7LsMwNV9MIpI5Zxbpyz0WsCYQhygelFvlKG0LzfIE7Q99Rlf6hWoFdY C4+g== 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 f5-20020a170902ce8500b001b9e9edc44bsi5035719plg.474.2023.07.22.03.02.17; Sat, 22 Jul 2023 03:02: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 S230141AbjGVJfZ (ORCPT + 99 others); Sat, 22 Jul 2023 05:35:25 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56374 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S230013AbjGVJfC (ORCPT ); Sat, 22 Jul 2023 05:35:02 -0400 Received: from szxga03-in.huawei.com (szxga03-in.huawei.com [45.249.212.189]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 837A430E2; Sat, 22 Jul 2023 02:34:48 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.55]) by szxga03-in.huawei.com (SkyGuard) with ESMTP id 4R7LmY4bvyzHqb7; Sat, 22 Jul 2023 17:32:13 +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; Sat, 22 Jul 2023 17:34:43 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v3 5/7] perf test: Update base-record & system-wide-dummy attr expected values for test-record-C0 Date: Sat, 22 Jul 2023 09:32:17 +0000 Message-ID: <20230722093219.174898-6-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230722093219.174898-1-yangjihong1@huawei.com> References: <20230722093219.174898-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) 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,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: 1772114573557703685 X-GMAIL-MSGID: 1772114573557703685 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 --- 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 Sat Jul 22 09:32:18 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 124264 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp728241vqg; Sat, 22 Jul 2023 03:30:56 -0700 (PDT) X-Google-Smtp-Source: APBJJlF1hR6Jh4Wq4egmFihHJ6E9sh8NyuxtHli+TBsi4oPVB3j83h23ll1agziRMn57k40w4fpi X-Received: by 2002:a25:1957:0:b0:d09:ff7:79ed with SMTP id 84-20020a251957000000b00d090ff779edmr490881ybz.5.1690021855888; Sat, 22 Jul 2023 03:30:55 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690021855; cv=none; d=google.com; s=arc-20160816; b=GXqMvIMvToWRUUcR4G3TcZ6Z4fK/OupO1HwkW+N3CYnZ1josxo3FU7DQTyteaCw6UF /5ENpbsuUcGFlpqsf91HWtLigwlSHe3ybng1nw5Lj1QBNRL+IFDXUGbHWt7hqsPtaSgN 84SAexqg8lkQWCkF0vxT6a3YD8UC8sj5s2ii9lu9yPwfZFK5DyPMCWD3qgsmUj/czCsu qtCpiGuMc+YyTVzmUhoauJEyoCoZ0GAIDzLTjsVLznJDljx8V0z//JIgjNCS6OXVy4gm E3bsdxlJMZXhRv0BXDwXmRyeffeImcbSYNBiNZJJxdZiR9J9f7H+0Wr9nRflfZEazeIy 6fCg== 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=VcLSH5JEmgoE7gg7nFOIxnrap/85ynAU/hiOsZ/Jec4R3E3Os1+jsCcFdlwisUpmtV sIru9ms4JhK64S3w5M0x5zGy7qSYVoXfWb3u5Y1n4JrSd21GkvlUUgjXR/GsrjLRBtxy j0Gyp2+jWTPka91RyVaxshJjDQykM3+bcP1a0/vz0GkgXWiqs0PQ6Aci0HwfhnfNVCx1 8DaEUF8k/4YWb6jJQs77o15Qu13zkhqdKRI8uq/ZeBTEiHoY6J8ksTTZhlZZmUVpKsTw 1RZuZEKzdC0ks1aJkqSkAjPlJVC0cMP3dnZYmKthTaOt9nVxhxy36z0kHJpGsrQkThaF OWnA== 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 kz13-20020a170902f9cd00b001b8ae9058d3si4590343plb.516.2023.07.22.03.30.42; Sat, 22 Jul 2023 03:30:55 -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 S230073AbjGVJfT (ORCPT + 99 others); Sat, 22 Jul 2023 05:35:19 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56366 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229769AbjGVJes (ORCPT ); Sat, 22 Jul 2023 05:34:48 -0400 Received: from szxga01-in.huawei.com (szxga01-in.huawei.com [45.249.212.187]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 43AB730F0; Sat, 22 Jul 2023 02:34:47 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.53]) by szxga01-in.huawei.com (SkyGuard) with ESMTP id 4R7LpX4mfJzrRmX; Sat, 22 Jul 2023 17:33:56 +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; Sat, 22 Jul 2023 17:34:44 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v3 6/7] perf test: Add test case for record sideband events Date: Sat, 22 Jul 2023 09:32:18 +0000 Message-ID: <20230722093219.174898-7-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230722093219.174898-1-yangjihong1@huawei.com> References: <20230722093219.174898-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) 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: 1772116357459394570 X-GMAIL-MSGID: 1772116357459394570 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 --- 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 Sat Jul 22 09:32:19 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Yang Jihong X-Patchwork-Id: 124261 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:9010:0:b0:3e4:2afc:c1 with SMTP id l16csp718850vqg; Sat, 22 Jul 2023 03:04:26 -0700 (PDT) X-Google-Smtp-Source: APBJJlE5AEkUyWF5bxK2a2UWr4ig3Jr1o9wsipVV52eZ1udIzcxKPz3vECqZVF4wTgI1D77liZTZ X-Received: by 2002:a0d:db50:0:b0:57a:8de8:ef46 with SMTP id d77-20020a0ddb50000000b0057a8de8ef46mr2373322ywe.39.1690020266532; Sat, 22 Jul 2023 03:04:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1690020266; cv=none; d=google.com; s=arc-20160816; b=Y6OSDgyLrmEoqYWnoFRV27lv7pIXc/QtSiIOjgBzxbovgymW2mCwSSlvYhhrP6XcC8 adRbPcwUyxKJIySTlMw6yf5ioYvbO8+pLp8mTtsLnMNzMZ/Vwr3QLl4HJHzTD+Ba+uLS G6NuE4dWf5b23orOBAOeeKwFVVjwivxM6vFsuU7Yx92UiF1iTn+b4WuiHx7Qa6OvEukg zf4mz0rNasCgKS5/W4urz74YUERZnB1tyuhnG1CmPGgQ8iQ/lIO4dHeKwIopOWQMVmPx Tk1YbvmZMEg2SNgOWSxOti5ZgqzUQfN2+Ry5XUAXcVgJlmdLcsCeyVGqrCJBKE8y/jqQ 9qcA== 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=Zem/PJvpqsD1FKKyEYOI52JTmedmKRuVus4omqbMp5Q=; fh=Ib1wi7jRbo+eNDLEErvWCJx+cnUm87PkGFthhdFf08Y=; b=tJnip36D7ULSjL2WKK2BWYwuUm7yEaGA7d6ebPdev+oh1/BQi8nWxpsDz+7UNcg9fC O25O9Cf9Pmw838+gKRfUSJYmO77w80i0ISKNT2aH+bFDzlK8mZ3faeZMfpPOx/FLuUoP y2Q0lJEsxy3fsyeAy88RbfHk1OSEYcu2ud6ZJuTrtCOfz7IMd2aV8z+jKpQhRAspWlkB sbqDoISLzcB5WmZLRLWG8I95yu7aihQfTTkU5SaccEA2hnInFrTPibWkWlh4sTM32jv+ L1iRcDl6UU0X9lbZ9WgWh0UWChJqCcF440ienxC0eF9NRRH0WCa4Mzv8gyiKIqlmwQiW yezA== 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 f5-20020a170902ce8500b001b9e9edc44bsi5035719plg.474.2023.07.22.03.03.56; Sat, 22 Jul 2023 03:04:26 -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 S230044AbjGVJfK (ORCPT + 99 others); Sat, 22 Jul 2023 05:35:10 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56368 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229890AbjGVJes (ORCPT ); Sat, 22 Jul 2023 05:34:48 -0400 Received: from szxga08-in.huawei.com (szxga08-in.huawei.com [45.249.212.255]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id B85E730F1; Sat, 22 Jul 2023 02:34:47 -0700 (PDT) Received: from kwepemm600003.china.huawei.com (unknown [172.30.72.56]) by szxga08-in.huawei.com (SkyGuard) with ESMTP id 4R7LpZ0cCkz18LVd; Sat, 22 Jul 2023 17:33:58 +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; Sat, 22 Jul 2023 17:34:44 +0800 From: Yang Jihong To: , , , , , , , , , , , , , , , CC: Subject: [PATCH v3 7/7] perf test: Add perf_event_attr test for record selected CPUs exclude_user Date: Sat, 22 Jul 2023 09:32:19 +0000 Message-ID: <20230722093219.174898-8-yangjihong1@huawei.com> X-Mailer: git-send-email 2.30.GIT In-Reply-To: <20230722093219.174898-1-yangjihong1@huawei.com> References: <20230722093219.174898-1-yangjihong1@huawei.com> MIME-Version: 1.0 X-Originating-IP: [10.67.174.95] X-ClientProxiedBy: dggems702-chm.china.huawei.com (10.3.19.179) 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: 1772114690799802330 X-GMAIL-MSGID: 1772114690799802330 If all (non-dummy) evsel have exclude_user, system_wide sideband is not needed. Add this test scenario. Signed-off-by: Yang Jihong --- .../tests/attr/test-record-C0-exclude_user | 32 +++++++++++++++++++ 1 file changed, 32 insertions(+) create mode 100644 tools/perf/tests/attr/test-record-C0-exclude_user diff --git a/tools/perf/tests/attr/test-record-C0-exclude_user b/tools/perf/tests/attr/test-record-C0-exclude_user new file mode 100644 index 000000000000..2d7549277c1e --- /dev/null +++ b/tools/perf/tests/attr/test-record-C0-exclude_user @@ -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