Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp7107405rwr; Tue, 2 May 2023 09:32:53 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7AE2ybAYsTmW2XqwRKgUv+2X8VMzPXftRZHlaIm09jCW3q5jIg048SG45ilogKELzdywuR X-Received: by 2002:a05:6830:1bc8:b0:6a6:5a4a:a691 with SMTP id v8-20020a0568301bc800b006a65a4aa691mr9750332ota.15.1683045173623; Tue, 02 May 2023 09:32:53 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683045173; cv=none; d=google.com; s=arc-20160816; b=NDvjx/v1BlgWaSITCJ5m8xWItdiDlDW3QggsZqrekMU+0BbLe0+nOAtIVEsHg0dlf8 o0osdoKBEgimgk0PYBairGr9Y8gUG1dEb/TD9n6h9AG2hpHd4zbbOJ6AJ/JtHmnq9HZd Wx+okn9TmnGviuzY/GLiHdtaxu/i5tX3deXD0/D/Qv00lyOho4Rl+qmlyNBVCse0J8eG dE0WokWlbDrrIvKQoNoxIauZWiVzZFK2o3uGEJsunR3xecTm6CqWIPBMIeAfcxXHX6dC HidgHx2/qo4cpQ5aTa7kFteqfvhNHJ1ZVBn9Ki0yX+kxn4INyepT5QEUiGOQpjZunIcw 4ApQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=6CMyijs+XNrKux/SQRcQVuldFctn4dvQkkq0tZYcvyY=; b=k3j2LYefzu94KNGuKY8ZsERMe56BQbm+vVUHO3KKq4D8eGCJTKheWao6RdPK08kiRh Kb6bZ+9e5u/mVWxzqk0ZaUULaL7nPQknFiASDGzBV26yODgdeeMx80X2Z7K49apt3fq8 Is924+h3AUrgXG3rv2x0/Mub/ysM0WCEN+M1VA+QzIjH4eEcc88rmcebDvgKeo3YPGY4 s21jaV2abIdtMDNbiNKLuTS/Yv/6YYKMdmcwhvq7GiiTUbsAruDp7FuBsNYgtsQour0T x7x9R96fZhBxy9Kfy39ObGjKIS1ylxqyGGkzm8Wa6rY5MSNTc8HZM3gyS7c3FsHF7ECt m6gg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=rzKBaXoD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id f20-20020a056830057400b006a43dc6e267si22692295otc.99.2023.05.02.09.32.39; Tue, 02 May 2023 09:32:53 -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; dkim=pass header.i=@google.com header.s=20221208 header.b=rzKBaXoD; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S233914AbjEBQT4 (ORCPT + 99 others); Tue, 2 May 2023 12:19:56 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:48776 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233922AbjEBQTu (ORCPT ); Tue, 2 May 2023 12:19:50 -0400 Received: from mail-il1-x12a.google.com (mail-il1-x12a.google.com [IPv6:2607:f8b0:4864:20::12a]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 919CE1992 for ; Tue, 2 May 2023 09:19:45 -0700 (PDT) Received: by mail-il1-x12a.google.com with SMTP id e9e14a558f8ab-3311833ba3dso114285ab.0 for ; Tue, 02 May 2023 09:19:45 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1683044385; x=1685636385; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=6CMyijs+XNrKux/SQRcQVuldFctn4dvQkkq0tZYcvyY=; b=rzKBaXoDGM+0wyev7OMKFK8+fyj11vVAS2euLP3VSuPPGHa22qBjScIViNWdXSF6WC K4yFjq9NKBWaY+WQi6Erw7TSLPH0bsj4U91NxkRbTzWym61W5rQMK/MMkjWFQk8zm8+Z JGSYPIDoMCaUoaBBy6PRLEGDpbHKCk/uMt468odXDcB0Ndbejsrh30URbB7L4k9Jd8i8 KlEP08EQuTV6pD2R0TZ9r4XIAr3Wg9P9QYwf+7UO4xrKt8WnqFGnrjkgTA+9eKD+ZyWy TtEpPt0L+OnHjwbFuvCyg6s3ZiXmJCchRVuJc5tzQd9SNX5VxZ72LtaOKNsdjxah6TVW hNQQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683044385; x=1685636385; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=6CMyijs+XNrKux/SQRcQVuldFctn4dvQkkq0tZYcvyY=; b=RxORnbvCd7vPZimBeWJ97f5cRa+Fw8BET8+wf9wpov/BvABfDsdCpqh8mHayH2jDlJ 8e9y2eiOlMHcrRNd9IKcc3H2AInM1b3Rtvx17OfBjYb1MApEweg+mxbSRvLcfe6L4ndJ sPsp7NmSD+zacHGZkhLOnpISCrmWbd4baa3Z+qBln74890sWRB9vehxr9dmuEPXnYCb9 rVf8ghQS3hOLlEx3akn9Dwpc+3llol1EipC0OA3P4vpBIXwuunYuLmvJ6D+cZwYOk7Ly t5F4byw7eWfsmo0QNKLyDpndD+PILOA28OdDWH80x+81YtEPh3nlnX64tiL682Ep/o3c HR4w== X-Gm-Message-State: AC+VfDxPWQNp++AOdpXPdDkeqONthwy8nM8ByXsIv+HEeX9yYh0wOW+K BxdwKbKoxgxjOo6RGB7CrMSK1O5T7ToHGHydyb8C3Q== X-Received: by 2002:a05:6e02:1ba6:b0:330:eb79:91ad with SMTP id n6-20020a056e021ba600b00330eb7991admr254048ili.9.1683044384639; Tue, 02 May 2023 09:19:44 -0700 (PDT) MIME-Version: 1.0 References: <20230429053506.1962559-1-irogers@google.com> <20230429053506.1962559-15-irogers@google.com> In-Reply-To: From: Ian Rogers Date: Tue, 2 May 2023 09:19:32 -0700 Message-ID: Subject: Re: [PATCH v3 14/46] perf test: Mask config then test To: Ravi Bangoria Cc: Arnaldo Carvalho de Melo , Kan Liang , Ahmad Yasin , Peter Zijlstra , Ingo Molnar , Stephane Eranian , Andi Kleen , Perry Taylor , Samantha Alt , Caleb Biggers , Weilin Wang , Edward Baker , Mark Rutland , Alexander Shishkin , Jiri Olsa , Namhyung Kim , Adrian Hunter , Florian Fischer , Rob Herring , Zhengjun Xing , John Garry , Kajol Jain , Sumanth Korikkar , Thomas Richter , Tiezhu Yang , Leo Yan , Yang Jihong , James Clark , Suzuki Poulouse , Kang Minchul , Athira Rajeev , linux-perf-users@vger.kernel.org, linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-17.6 required=5.0 tests=BAYES_00,DKIMWL_WL_MED, DKIM_SIGNED,DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF, ENV_AND_HDR_SPF_MATCH,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE,USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL 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 On Tue, May 2, 2023 at 3:44=E2=80=AFAM Ravi Bangoria wrote: > > > @@ -87,7 +92,7 @@ static int test__checkevent_raw(struct evlist *evlist= ) > > > > TEST_ASSERT_VAL("wrong number of entries", 1 =3D=3D evlist->core.= nr_entries); > > TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW =3D=3D evsel->core.at= tr.type); > > - TEST_ASSERT_VAL("wrong config", 0x1a =3D=3D evsel->core.attr.conf= ig); > > + TEST_ASSERT_VAL("wrong config", test_config(evsel, 0x1a)); > > Extended 'type' via 'config' is applicable only to HW and HW_CACHE types. > I think we should not apply test_config() for other types. Even if they > are ineffective in these tests (because we are not setting upper bits), > they are semantically wrong IMO. > > In fact, AMD EventSelect is 12 bits and upper 4 bits are located at 35:32 > in PerfEvtSel register. So for RAW events, upper bits MUST NOT be ignored= . Thanks Ravi, this is important and I'll update the tests as you suggest. I'd been iterating on this, which is why the test is this way. We have two parsing cases, one where the type is explicitly given like: $ perf stat -e '4:0xC0' true and another where the raw config is wildcard applied like: $ perf stat -e 'rC0' true The question is which PMUs should the 0xC0 raw event be opened on? The answer in the code is to ignore all PMUs that aren't the "core" PMUs, so cpu, cpu_atom, cpu_core, armv8... This matches existing behavior but it wasn't clear to me that this was intentional. I think in the future the wildcard application can be made more efficient to ignore unnecessary PMUs and avoid the sysfs scan. Something that is a bit of an issue in the event parsing is what exactly should be applied by wildcard matching and there are inconsistencies. Thanks, Ian > > @@ -139,8 +142,7 @@ static int test__checkevent_symbolic_alias(struct e= vlist *evlist) > > > > TEST_ASSERT_VAL("wrong number of entries", 1 =3D=3D evlist->core.= nr_entries); > > TEST_ASSERT_VAL("wrong type", PERF_TYPE_SOFTWARE =3D=3D evsel->co= re.attr.type); > > - TEST_ASSERT_VAL("wrong config", > > - PERF_COUNT_SW_PAGE_FAULTS =3D=3D evsel->core.attr= .config); > > + TEST_ASSERT_VAL("wrong config", test_config(evsel, PERF_COUNT_SW_= PAGE_FAULTS)); > > Ditto for PERF_TYPE_SOFTWARE. We should not use test_config(). > > > > @@ -160,7 +162,7 @@ static int test__checkevent_breakpoint(struct evlis= t *evlist) > > > > TEST_ASSERT_VAL("wrong number of entries", 1 =3D=3D evlist->core.= nr_entries); > > TEST_ASSERT_VAL("wrong type", PERF_TYPE_BREAKPOINT =3D=3D evsel->= core.attr.type); > > - TEST_ASSERT_VAL("wrong config", 0 =3D=3D evsel->core.attr.config)= ; > > + TEST_ASSERT_VAL("wrong config", test_config(evsel, 0)); > > Ditto for PERF_TYPE_BREAKPOINT.