Received: by 2002:a05:6358:d09b:b0:dc:cd0c:909e with SMTP id jc27csp6440458rwb; Tue, 22 Nov 2022 13:28:23 -0800 (PST) X-Google-Smtp-Source: AA0mqf5J8o4j8+TrTmSymVuYWiSsU0Q0ueZ+Rjzv+GGaT3a95/T06xC35yD3LqeFnKvAEhrKhSkZ X-Received: by 2002:a17:906:9148:b0:78a:643e:6892 with SMTP id y8-20020a170906914800b0078a643e6892mr20955905ejw.662.1669152503077; Tue, 22 Nov 2022 13:28:23 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1669152503; cv=none; d=google.com; s=arc-20160816; b=H9wGGCI1KlwqzYiWk3giqG2QJ/ov+pZnxiQ5GdR6QTCRUrqpoFEk3NR/UKTHwx58Eg YZNytaGcppsNIp/Dp4x31Jc8RpZnwrVc0uCkDXl1YMO+maArmtGjm918TEjkx4zo+5qX ocsOM+alU6/6eWnMJSaF8swkA73+5BIQmShO+SllMqVB+kpK5N4MxUg+836wyYnBuT4X OM5oasKXJQzjlteiQkR9uH3bcsfIEgzsnWD40ECK4i0xgS1GVfEj2zwCHBdDY1cMHDjC 7TDcxh61c+jHx+uwhIpnVjTCyz5a27u9SG4pKul73/LeNHIv1KIJ0eue/BxXoQ7JjgZc R/Pg== 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=JKuICPYKZ9k0XZnBRysJX6NiMCJfmExtlbNu8FtJP1I=; b=S/Fp5nCKfAjYnkXxqcVmZIk+6zW3Tg/PtWRSM3IASgb4kny53W4p8ncJeBdURbkRMG qQBYUPwRpGhN5V87kvlrA/99uiNpgQkfq3yrix3qQgjFfn9KU+zvZR9rBl382ibNWjms lprBjwlhNyLobXr8088ZXWMf4S7L5QsJvvbvZlVKeFjFGuq7Y8DWsvisWs4xEk4V/gHq 6drM+mv4UBCUiNP/K0MEH0VnkOOrMFzQZaro+qjxV5BRNh2v72yesu9W/A/maMmJrrZF ggTwe+mt3TOD6u75DWxtQhRhQ8jKB9AB67qXn1udxXBnm6MXeQoBZr4WX3/ZWel6pHay hzeA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=X7rHdLp7; 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 wy4-20020a170906fe0400b0078cc8a2cf4bsi13290368ejb.614.2022.11.22.13.28.00; Tue, 22 Nov 2022 13:28:23 -0800 (PST) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20210112 header.b=X7rHdLp7; 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 S234767AbiKVU5V (ORCPT + 89 others); Tue, 22 Nov 2022 15:57:21 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:33636 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233828AbiKVU5U (ORCPT ); Tue, 22 Nov 2022 15:57:20 -0500 Received: from mail-wm1-x32e.google.com (mail-wm1-x32e.google.com [IPv6:2a00:1450:4864:20::32e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 23B9A79E34 for ; Tue, 22 Nov 2022 12:57:19 -0800 (PST) Received: by mail-wm1-x32e.google.com with SMTP id v124-20020a1cac82000000b003cf7a4ea2caso16235337wme.5 for ; Tue, 22 Nov 2022 12:57:19 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20210112; 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=JKuICPYKZ9k0XZnBRysJX6NiMCJfmExtlbNu8FtJP1I=; b=X7rHdLp79aV6wbOZPObE1MOz+0+MDECt6wlNvu+uY1NNoOlYVIqCJL5DvgsG8KQFdF BIc1lKsonKr3A7YnLdZc2/QOOwjpbmzw7wpOvmlvG7wSbyaVbQjwHFHX1f/TbjrIS2X5 QPoF0PPuoXqDFuT2Aux8kGN0Zx7KMwcki8kzjob8WgN5o9wBPpNLwobv39BSnE+p/kS9 9Z5VeoOsorHu+4AN+vLBSaAQ9CSqo6WnFNaRJEUCSpMvtLWsYpmZvf+Q1SqAkcnr2Srj 3zM1T3fntRpoKo1z2GfCznG4kXdpyU4mDcIW5Xl0Z138dL1mgrEAnqqzJbnan15gVwlR b8Fw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; 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=JKuICPYKZ9k0XZnBRysJX6NiMCJfmExtlbNu8FtJP1I=; b=NBvWqTqcBw9rsExmYXWNDwojbj/00Q8a8/HJvH/iIbcpy3r/o2hxBoMIxt9Atzpts5 2Yre4hOWM1ceKCUA2jZ0u+AdnPSo0g7or5Dy2LwZTdD84+xQ0S82HShBX1bGBp1lXlxw GIWn0RQJtZa/+GEyVSgOuS3LtUf+guOzeLrhk2YyI4rdg4bhc51CCC/WNEB3icevjStu aK17Gmrre0n+V9mk9rbBI6CpIOndIVG/O9u3cFBF04Pbm1wkj7Usq5KoK8FWsbMYry1j 2rJQfy0MS75A5TJgaIPc0V+8eeGxROiWY8GbxgHSKE5uk26IiGLC4r6RITxSU3eyKo+Z gj6A== X-Gm-Message-State: ANoB5pl9yDK1mG9hLhSPYPLewsrRNjhVCG017GFcmkfDPmFNgi0APYNS W8B+U6EoHdXbej36BBBV7D1FOOMzGH2PJGt67u6HXA== X-Received: by 2002:a05:600c:4920:b0:3cf:8b23:549c with SMTP id f32-20020a05600c492000b003cf8b23549cmr10830757wmp.174.1669150637535; Tue, 22 Nov 2022 12:57:17 -0800 (PST) MIME-Version: 1.0 References: <20221121102747.208289-1-naveen.n.rao@linux.vnet.ibm.com> In-Reply-To: From: Ian Rogers Date: Tue, 22 Nov 2022 12:57:05 -0800 Message-ID: Subject: Re: [PATCH] perf test: Skip watchpoint tests if no watchpoints available To: Christophe Leroy Cc: "Naveen N. Rao" , Arnaldo Carvalho de Melo , Ravi Bangoria , "linux-perf-users@vger.kernel.org" , Disha Goel , "linuxppc-dev@lists.ozlabs.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, USER_IN_DEF_DKIM_WL,USER_IN_DEF_SPF_WL autolearn=unavailable autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Nov 22, 2022 at 11:19 AM Christophe Leroy wrote: > > > > Le 21/11/2022 =C3=A0 11:27, Naveen N. Rao a =C3=A9crit : > > On IBM Power9, perf watchpoint tests fail since no hardware breakpoints > > are available. Detect this by checking the error returned by > > perf_event_open() and skip the tests in that case. > > > > Reported-by: Disha Goel > > Signed-off-by: Naveen N. Rao > > --- > > tools/perf/tests/wp.c | 12 +++++++----- > > 1 file changed, 7 insertions(+), 5 deletions(-) > > > > diff --git a/tools/perf/tests/wp.c b/tools/perf/tests/wp.c > > index 56455da30341b4..cc8719609b19ea 100644 > > --- a/tools/perf/tests/wp.c > > +++ b/tools/perf/tests/wp.c > > @@ -59,8 +59,10 @@ static int __event(int wp_type, void *wp_addr, unsig= ned long wp_len) > > get__perf_event_attr(&attr, wp_type, wp_addr, wp_len); > > fd =3D sys_perf_event_open(&attr, 0, -1, -1, > > perf_event_open_cloexec_flag()); > > - if (fd < 0) > > + if (fd < 0) { > > + fd =3D -errno; > > pr_debug("failed opening event %x\n", attr.bp_type); > > + } > > Do you really need that ? > > Can't you directly check errno in the caller ? errno is very easily clobbered and not clearly set on success - ie, it'd be better not to do that. Acked-by: Ian Rogers Thanks, Ian > > > > return fd; > > } > > @@ -77,7 +79,7 @@ static int test__wp_ro(struct test_suite *test __mayb= e_unused, > > > > fd =3D __event(HW_BREAKPOINT_R, (void *)&data1, sizeof(data1)); > > if (fd < 0) > > - return -1; > > + return fd =3D=3D -ENODEV ? TEST_SKIP : -1; > > > > tmp =3D data1; > > WP_TEST_ASSERT_VAL(fd, "RO watchpoint", 1); > > @@ -101,7 +103,7 @@ static int test__wp_wo(struct test_suite *test __ma= ybe_unused, > > > > fd =3D __event(HW_BREAKPOINT_W, (void *)&data1, sizeof(data1)); > > if (fd < 0) > > - return -1; > > + return fd =3D=3D -ENODEV ? TEST_SKIP : -1; > > > > tmp =3D data1; > > WP_TEST_ASSERT_VAL(fd, "WO watchpoint", 0); > > @@ -126,7 +128,7 @@ static int test__wp_rw(struct test_suite *test __ma= ybe_unused, > > fd =3D __event(HW_BREAKPOINT_R | HW_BREAKPOINT_W, (void *)&data1, > > sizeof(data1)); > > if (fd < 0) > > - return -1; > > + return fd =3D=3D -ENODEV ? TEST_SKIP : -1; > > > > tmp =3D data1; > > WP_TEST_ASSERT_VAL(fd, "RW watchpoint", 1); > > @@ -150,7 +152,7 @@ static int test__wp_modify(struct test_suite *test = __maybe_unused, int subtest _ > > > > fd =3D __event(HW_BREAKPOINT_W, (void *)&data1, sizeof(data1)); > > if (fd < 0) > > - return -1; > > + return fd =3D=3D -ENODEV ? TEST_SKIP : -1; > > > > data1 =3D tmp; > > WP_TEST_ASSERT_VAL(fd, "Modify watchpoint", 1); > > > > base-commit: 63a3bf5e8d9e79ce456c8f73d4395a5a51d841b1