Received: by 2002:a05:6358:9144:b0:117:f937:c515 with SMTP id r4csp7029755rwr; Tue, 2 May 2023 08:34:11 -0700 (PDT) X-Google-Smtp-Source: ACHHUZ7A+vG+AiX06lqZvwcMntCKdB6OyiZ6TvHi6IoyAMrM30VHYRjhRBCG/zQVa8DKFNN2NS3O X-Received: by 2002:a05:6808:902:b0:378:916e:2959 with SMTP id w2-20020a056808090200b00378916e2959mr8338875oih.34.1683041650755; Tue, 02 May 2023 08:34:10 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1683041650; cv=none; d=google.com; s=arc-20160816; b=TQi5v1tzE8XPH05tyvCAgRmgrnReEGEQLRkJSPitrruEiWQxY7PJuQ/aE1oZteK2uI Ac3syWx6eazCNKiQhCrAzf59NCZqyAYkaDiBNcAWLQUVU0QNSIY5/J3M/Gmc42laZlVD YMRpKOk418Z9E0znvz4KwG/1aRmh3sUiF/5NEFXQRtZK7Lvdqrw4xOFdf2K3TskL6paS nm11tqERWayuB3Ui72T9jzys3VVq2ohMUeDzkCKscs5upSMSRGlB4IwO3vxLz+DQ2XG7 KeC7mORaEHTr0/6MK4gWuyPbJJJCn0e+tmxmLMoe5Mt5lcE7ArLvukzJP0VyIzPNpGIx PsHw== 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=UZx06idcsC+EaYZQXKoSd4jywVamtp3q4gWRtfyTqgg=; b=erHkuoAlTReWo0x1d8/sMWAfw1Z1jp66kT53XgQHC7aenR9t5df7zUUw42WoSsBuqL 2A/OjiBoT7uxy77BiCrslMTz3AyH/qcNY9wVZlVIFfFAtHap+axHNuHikO0fNcWPhXRI GUc5ixg0f29DDiBN9pavVNzwhppsQSixttcOt9mpWrZ0X8IxLRP6jxFkuNji4m2dCVbN u+c7ntGLGTgy3/LqtmF3/lJsR3V8uMymeoevgNwA3YAbNYShBoAad8YzSqpQJOCgq5Eb 0fGDqXWbzaxqZdowx9bn7vOoxslg5fBJbTn2Etl7g0nS7FJBEXav9hU1KSIE0929o6eR C/aw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20221208 header.b=xAs0rTT2; 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 bg33-20020a05680817a100b003894a9e333csi20895097oib.280.2023.05.02.08.33.57; Tue, 02 May 2023 08:34:10 -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=xAs0rTT2; 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 S234420AbjEBPaM (ORCPT + 99 others); Tue, 2 May 2023 11:30:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47362 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234176AbjEBPaL (ORCPT ); Tue, 2 May 2023 11:30:11 -0400 Received: from mail-il1-x12e.google.com (mail-il1-x12e.google.com [IPv6:2607:f8b0:4864:20::12e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A8EC02733 for ; Tue, 2 May 2023 08:30:08 -0700 (PDT) Received: by mail-il1-x12e.google.com with SMTP id e9e14a558f8ab-33124b0dd85so102215ab.1 for ; Tue, 02 May 2023 08:30:08 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20221208; t=1683041407; x=1685633407; 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=UZx06idcsC+EaYZQXKoSd4jywVamtp3q4gWRtfyTqgg=; b=xAs0rTT2QFWK99x8lOrIpGnrlln4Mlhai3kbLqnDZbDQnrq70VBST4DjGw43P5uk1A K5i/aHRYjxz3AXWbPfQegJkXdfy20+u4LUdhn8BpWyVETCDkCfxB4EvfTnQB5j+wLb3u jworDFcgWU40GR2YWfqN+PvvWIS+mvIn7VBheywB4qMEBB4RTzVRnIP3WqP7TKaspb7l hSAymP5M9Sk9Gj9ojI0l8yLaxjuLKQA5EbU1cbbe0I30w91E0uyJqcaencz6MsuJc2HU IWKA9qiIlaDLWv7J6MkHF2sfSuKJCW92GSwSOJrg5dvGy35qmwMig77W7Wb4h3d1pj7F LBUg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20221208; t=1683041407; x=1685633407; 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=UZx06idcsC+EaYZQXKoSd4jywVamtp3q4gWRtfyTqgg=; b=CgylAiuq4VE49eD6YmGpoPN3HKyV8+l4Im25Bx/2VL0TxRG96O4F7xpuXqCa/3HYyU 6zlVJmOjJqN2n3iIoy8f70rs3P253bZ6bp53EYOjVCspmIzfcuzhxloGceD8UjKvKvyB 3NLfNxzR0reNz2oWrHa06QZKu1wPt00elB/zHYBfpHyjI1XPMJF5JHCHE3bVrxG/y4+w 5KLNWwVNnsi+4BJPUkBmWQWqDbb+jwiaT9T7s0UAviTxMFt/3/qBG7ehH0IG0sNoU2h6 Sf3gr/hpv7hcVl1MY45uxX4TCbhKLpEqWZTzbZoiZftNxhTkhQHs2lxH1tolhB6iGAqu ogKQ== X-Gm-Message-State: AC+VfDyYvOkL1rUSlN/F1G+LMnazm3qOdj1oEMVng/I9nFDhZTdaBJcS h2azGZzdoCAd7FYb7pcqwJ70o35wFAQGOzCM2excVg== X-Received: by 2002:a05:6e02:2189:b0:315:8e3a:f546 with SMTP id j9-20020a056e02218900b003158e3af546mr366020ila.6.1683041406792; Tue, 02 May 2023 08:30:06 -0700 (PDT) MIME-Version: 1.0 References: <20230429053506.1962559-1-irogers@google.com> <20230429053506.1962559-13-irogers@google.com> <31dbae6c-4cbe-d7e2-bc78-beed959cbddc@amd.com> In-Reply-To: From: Ian Rogers Date: Tue, 2 May 2023 08:29:55 -0700 Message-ID: Subject: Re: [PATCH v3 12/46] perf test: Test more sysfs events 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 8:16=E2=80=AFAM Ian Rogers wrot= e: > > On Tue, May 2, 2023 at 3:27=E2=80=AFAM Ravi Bangoria wrote: > > > > > @@ -2225,74 +2226,82 @@ static int test_pmu(void) > > > > > > static int test__pmu_events(struct test_suite *test __maybe_unused, = int subtest __maybe_unused) > > > { > > > - struct stat st; > > > - char path[PATH_MAX]; > > > - struct dirent *ent; > > > - DIR *dir; > > > - int ret; > > > + struct perf_pmu *pmu; > > > + int ret =3D TEST_OK; > > > > > > - if (!test_pmu()) > > > - return TEST_SKIP; > > > + perf_pmus__for_each_pmu(pmu) { > > > > 'pmus' list might be empty and, if so, we need to fill it first with: > > > > if (list_empty(&pmus)) > > perf_pmu__scan(NULL); > > > > before iterating over it. Other option is to add this code to > > perf_pmus__for_each_pmu() macro itself. > > > > With that, the test fails for me: > > > > $ sudo ./perf test 6 > > 6: Parse event definition strings : > > 6.1: Test event parsing : = Ok > > 6.2: Test parsing of "hybrid" CPU events : = Skip (not hybrid) > > 6.3: Parsing of all PMU events from sysfs : = FAILED! > > > > > + struct stat st; > > > + char path[PATH_MAX]; > > > + struct dirent *ent; > > > + DIR *dir; > > > + int err; > > > > > > - snprintf(path, PATH_MAX, "%s/bus/event_source/devices/cpu/event= s/", > > > - sysfs__mountpoint()); > > > + snprintf(path, PATH_MAX, "%s/bus/event_source/devices/%= s/events/", > > > + sysfs__mountpoint(), pmu->name); > > > > > > - ret =3D stat(path, &st); > > > - if (ret) { > > > - pr_debug("omitting PMU cpu events tests: %s\n", path); > > > - return TEST_OK; > > > - } > > > + err =3D stat(path, &st); > > > + if (err) { > > > + pr_debug("skipping PMU %s events tests: %s\n", = pmu->name, path); > > > + ret =3D combine_test_results(ret, TEST_SKIP); > > > > combine_test_results(ret, TEST_OK); probably? Since many pmus don't exp= ose > > events via sysfs. > > Thanks Ravi! The following looks to address the issues and I'll add it to= v4. > > ''' > diff --git a/tools/perf/tests/parse-events.c b/tools/perf/tests/parse-eve= nts.c > index 35b35a5c795c..2ff61ee8f970 100644 > --- a/tools/perf/tests/parse-events.c > +++ b/tools/perf/tests/parse-events.c > @@ -559,7 +559,8 @@ static int test__checkevent_pmu_events(struct > evlist *evlist) > struct evsel *evsel =3D evlist__first(evlist); > > TEST_ASSERT_VAL("wrong number of entries", 1 =3D=3D evlist->core.n= r_entries); > - TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW =3D=3D evsel->core.at= tr.type); > + TEST_ASSERT_VAL("wrong type", PERF_TYPE_RAW =3D=3D evsel->core.at= tr.type || > + strncmp(evsel->pmu_name, "cpu/", 4)= ); This should be strcmp(evsel->pmu_name, "cpu"). Or we could drop the assert. I'll try to keep what's covered currently by the test while extending the PMUs. Thanks, Ian > TEST_ASSERT_VAL("wrong exclude_user", > !evsel->core.attr.exclude_user); > TEST_ASSERT_VAL("wrong exclude_kernel", > @@ -2229,6 +2230,9 @@ static int test__pmu_events(struct test_suite > *test __maybe_unused, int subtes > t > struct perf_pmu *pmu; > int ret =3D TEST_OK; > > + if (list_empty(&pmus)) > + perf_pmu__scan(NULL); > + > perf_pmus__for_each_pmu(pmu) { > struct stat st; > char path[PATH_MAX]; > @@ -2242,7 +2246,6 @@ static int test__pmu_events(struct test_suite > *test __maybe_unused, int subtes > t > err =3D stat(path, &st); > if (err) { > pr_debug("skipping PMU %s events tests: %s\n", > pmu->name, path); > - ret =3D combine_test_results(ret, TEST_SKIP); > continue; > } > '''