Received: by 2002:a05:6358:bb9e:b0:b9:5105:a5b4 with SMTP id df30csp5325796rwb; Wed, 7 Sep 2022 00:35:37 -0700 (PDT) X-Google-Smtp-Source: AA6agR4GcQbFaercjBvZdykvXqE6Fa7cvLwpfOHo2IFJYsRv37ce1/XSPWWEExx1rgD+9inQm7oU X-Received: by 2002:a17:902:f644:b0:172:b074:d1f5 with SMTP id m4-20020a170902f64400b00172b074d1f5mr2483680plg.29.1662536137232; Wed, 07 Sep 2022 00:35:37 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1662536137; cv=none; d=google.com; s=arc-20160816; b=SiGHMXYfMho/elGQFbd5hT7yKIn6/mtduPiU24vWDqLivI70Dsi2OLvnVNIG7gwoMf ZpHCThBUXCsPX2m7qvdbIsCQqcT00HsJwjVs3ZYe4MFsPB3ZcYNbQETPEd16mDmGy3u7 ra2mu4OnyA+5hlXBxbnSCUqfzbBKEc6IFa59PfFvqWaoM/Sgzs4IfsMnSrKhQiVmCT98 s9KjUhCNcOReB6jpkox/lXv2Ln0EtB/1Ccjmy6Q8gDn7OGRzvwzQr+JCtARCHiAbPoXb E34K98r38We1ho3Oljk9PfojL8NtVn+mc6lAZeqt0uhjJMIIi5XKRSEGuM9v6h40NG7x IfIw== 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 :message-id:date:subject:cc:to:from:sender:dkim-signature; bh=6lTRwgbVAQzKBet64OF/KNo58h2SgV1oGkXH8Q9vXpc=; b=yw9/vUw/xvOxXQBwfI8v/GJBb6Ulg25YCgCm+BE2b42knytzRhrweAak4M+SZkWoDX 2UsJOdFzN4P52ohVZu3CNgQZiLKb6QnaCPcmj4Roq7zB+Z6rTLvPdeviWoFfRqKOxUvA rOK+lJ+GFMdsyTkys4F51/iDy8g3vHpRe5rDnm0u3+7k0XdTF0Fg3kWXJdUsSHrjayXE fJ4Yy+t+bc7dIBxp+9IAOEjtXKqhi3Z5ZhJZ0n0UZsHheGAcjyeY4XjZ5nzPkBk04v2D 48qumB6XEYoBql7qekLrd9jfJ8d6HcZ5pjRCRiNBBhnlbhAT09TKAbp8OQtfSuNbdvdp d6Sw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20210112 header.b=Qt5A4ogV; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id o8-20020a170902778800b00177e4c06afesi70622pll.151.2022.09.07.00.35.24; Wed, 07 Sep 2022 00:35:37 -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=@gmail.com header.s=20210112 header.b=Qt5A4ogV; 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=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229775AbiIGHMg (ORCPT + 99 others); Wed, 7 Sep 2022 03:12:36 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60688 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229947AbiIGHMQ (ORCPT ); Wed, 7 Sep 2022 03:12:16 -0400 Received: from mail-pf1-x42e.google.com (mail-pf1-x42e.google.com [IPv6:2607:f8b0:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8E4F6A222E; Wed, 7 Sep 2022 00:12:14 -0700 (PDT) Received: by mail-pf1-x42e.google.com with SMTP id o126so4724251pfb.6; Wed, 07 Sep 2022 00:12:14 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:from:to:cc:subject:date; bh=6lTRwgbVAQzKBet64OF/KNo58h2SgV1oGkXH8Q9vXpc=; b=Qt5A4ogV0ru8hJtbs7yIS4YQsTRTxo/A7yEjip/KYlWOBIgQltdeiVqqba/eW2ALFl E8sOzUQ6saNXGhkF29R2CWmLVjKRKCsTW0GCxprfxLyrYCSFYZwufvRye+m7OIJMM7Ho CPhpYVpkxvP64SVJ9tNaCxd9t+EB3FeNlG/WsaagcoGP3PPYx8HjjZUyAYAjc6SihqlB iljF3Y4i/Jh4XgmY8NwlfKpA4Dt75lf5oLIwZ8AISoebRXneSAcR0L72TNF6zrTCa8UT z05cllVcPF94AStZjS+uctb2nYdN2HYWkja4V5rsGlqBam7fG1UCyaH5sjfTLCBFmVFE wQQw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=content-transfer-encoding:mime-version:message-id:date:subject:cc :to:from:sender:x-gm-message-state:from:to:cc:subject:date; bh=6lTRwgbVAQzKBet64OF/KNo58h2SgV1oGkXH8Q9vXpc=; b=jy1KG/YgmaRQRwALITpjaFuEYeJ7EAigM1Yo1ytRdE8bDwoZYsiuEx3THgAXfOZdU6 TwaR7orB+MWPb2coeyPkqC8tfMGAiYBhfhS9DtZAoTccz98Dpp4RJe8VS0TbJsdfn/EJ Za07UXSy6hbq+zXiYptt/3mUg+YFvaoP0zttu7pAVcybR7XuwSUfruun1OK6UeFMLzBB 2TiUhsYUbPshwgJQvxHdv63Yv2j3NhqQm9aojkGBOgx21UlS7TWb97/0tLKyLRM8B7oe 8y8HQcNcU8wKtnuYUtgdFSFZtpoBXUtQdwTfWKtiyGa86Q2jxdE+GJG89avyUGpRXL/X KHWQ== X-Gm-Message-State: ACgBeo1Wex0RgKiSPDxIRn+SpoOZ+hKR4A6nE92VbnhzIW/CryagHzfD wrnNLYVuK8pnbIb2lckWQMRsnnrycVw= X-Received: by 2002:a05:6a00:4393:b0:52f:3603:e62f with SMTP id bt19-20020a056a00439300b0052f3603e62fmr2383242pfb.23.1662534733953; Wed, 07 Sep 2022 00:12:13 -0700 (PDT) Received: from youngsil.svl.corp.google.com ([2620:15c:2d4:203:31b5:b507:23a9:c4ba]) by smtp.gmail.com with ESMTPSA id q13-20020a170902dacd00b001743be790b4sm11395999plx.215.2022.09.07.00.12.12 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Wed, 07 Sep 2022 00:12:13 -0700 (PDT) Sender: Namhyung Kim From: Namhyung Kim To: Arnaldo Carvalho de Melo , Jiri Olsa Cc: Ingo Molnar , Peter Zijlstra , LKML , Ian Rogers , linux-perf-users@vger.kernel.org, Marco Elver , Song Liu Subject: [PATCH v3] perf test: Skip sigtrap test on old kernels Date: Wed, 7 Sep 2022 00:12:03 -0700 Message-Id: <20220907071203.2729746-1-namhyung@kernel.org> X-Mailer: git-send-email 2.37.2.789.g6183377224-goog MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-1.5 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_EF,FREEMAIL_FORGED_FROMDOMAIN,FREEMAIL_FROM, HEADER_FROM_DIFFERENT_DOMAINS,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE, SPF_PASS,T_SCC_BODY_TEXT_LINE autolearn=no 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 If it runs on an old kernel, perf_event_open would fail because of the new fields sigtrap and sig_data. Just skipping the test could miss an actual bug in the kernel. Let's check BTF if it has the perf_event_attr.sigtrap field. Cc: Marco Elver Acked-by: Song Liu Signed-off-by: Namhyung Kim --- * move #include under #ifdef * return true when BPF is not supported * update comment tools/perf/tests/sigtrap.c | 50 +++++++++++++++++++++++++++++++++++++- 1 file changed, 49 insertions(+), 1 deletion(-) diff --git a/tools/perf/tests/sigtrap.c b/tools/perf/tests/sigtrap.c index e32ece90e164..cdf75eab6a8a 100644 --- a/tools/perf/tests/sigtrap.c +++ b/tools/perf/tests/sigtrap.c @@ -54,6 +54,48 @@ static struct perf_event_attr make_event_attr(void) return attr; } +#ifdef HAVE_BPF_SKEL +#include + +static bool attr_has_sigtrap(void) +{ + bool ret = false; + struct btf *btf; + const struct btf_type *t; + const struct btf_member *m; + const char *name; + int i, id; + + btf = btf__load_vmlinux_btf(); + if (btf == NULL) { + /* should be an old kernel */ + return false; + } + + id = btf__find_by_name_kind(btf, "perf_event_attr", BTF_KIND_STRUCT); + if (id < 0) + goto out; + + t = btf__type_by_id(btf, id); + for (i = 0, m = btf_members(t); i < btf_vlen(t); i++, m++) { + name = btf__name_by_offset(btf, m->name_off); + if (!strcmp(name, "sigtrap")) { + ret = true; + break; + } + } +out: + btf__free(btf); + return ret; +} +#else /* !HAVE_BPF_SKEL */ +static bool attr_has_sigtrap(void) +{ + /* to maintain current behavior */ + return true; +} +#endif /* HAVE_BPF_SKEL */ + static void sigtrap_handler(int signum __maybe_unused, siginfo_t *info, void *ucontext __maybe_unused) { @@ -139,7 +181,13 @@ static int test__sigtrap(struct test_suite *test __maybe_unused, int subtest __m fd = sys_perf_event_open(&attr, 0, -1, -1, perf_event_open_cloexec_flag()); if (fd < 0) { - pr_debug("FAILED sys_perf_event_open(): %s\n", str_error_r(errno, sbuf, sizeof(sbuf))); + if (attr_has_sigtrap()) { + pr_debug("FAILED sys_perf_event_open(): %s\n", + str_error_r(errno, sbuf, sizeof(sbuf))); + } else { + pr_debug("perf_event_attr doesn't have sigtrap\n"); + ret = TEST_SKIP; + } goto out_restore_sigaction; } -- 2.37.2.789.g6183377224-goog