From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from mail-dy1-f174.google.com (mail-dy1-f174.google.com [74.125.82.174]) (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (No client certificate requested) by smtp.subspace.kernel.org (Postfix) with ESMTPS id A946E34889F for ; Fri, 27 Feb 2026 16:40:56 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=74.125.82.174 ARC-Seal:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772210458; cv=none; b=guJ2Zbcs7xKgUjWOq/PX9EVWcXYo3/UnqgyDF6tr0LjcPTXWbbHdoIkBeUtU7weHNqWxOhRPHnr9rjLtoWpxPg60gKmAMMrkuWRgGFVXytimzgwsGRXmfMU9H1NU2xflc9F75gjD8l+X0SmuCNE0Y7dkC3P3/fZz2nuFqnQqlRo= ARC-Message-Signature:i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1772210458; c=relaxed/simple; bh=C9rvgcLgCnl2H3Sg4HwQ69JNuoVVfZdko+mTO0riISE=; h=From:To:Cc:Subject:Date:Message-ID:In-Reply-To:References: MIME-Version; b=qqFXhozW4Yzg3tj4RqUBJIdDDYQeMKSlGOEOoxB7XZ0VubKNb5zhKkUQIqsplbbGNXaTu90U8TDy70ygzIRwqumF/1nx+9xATV2ARRBlNw8pfF9wX2P7A4/IBq5imL0nCyJDYIoJR96LmNFibYzmhsNptdmBA2mV7bCnJJLMgOw= ARC-Authentication-Results:i=1; smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com; spf=pass smtp.mailfrom=gmail.com; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b=LSiZX+Kg; arc=none smtp.client-ip=74.125.82.174 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=none dis=none) header.from=gmail.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=gmail.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=gmail.com header.i=@gmail.com header.b="LSiZX+Kg" Received: by mail-dy1-f174.google.com with SMTP id 5a478bee46e88-2bdc8bb60f5so1537689eec.1 for ; Fri, 27 Feb 2026 08:40:56 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20230601; t=1772210456; x=1772815256; darn=vger.kernel.org; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:from:to:cc:subject:date :message-id:reply-to; bh=jdhIwXbtzriV4OW5ztdIybKDlCas+wm2/e72G4CdWfk=; b=LSiZX+KgqPM8gkkTRYnQF4QKo15oV/QXh/m7oyDGR/x8wN6SnXBpLAmnYll49dVxlj DRj1bLoxgrYoIa4yr4OEaRWkDNGMlvqysGwi5RFoB3AwHtP8pHgK+nhGHDV54zBeW0kM BiVkQpBFmTTY+w0NHfT0CycYlTAjNr2jrCl2Y1cZFjbDkHH2UxL15/1crmX7Fuv11zAa fU36fxIwBEAwoDDovUDirPw7I+Ls50qNfknKYMevaYiHWEiJ3G+wW3iCx6piL/4BnNuG CTg27Ri7Oc1UpQHvQguFO70RsXV+dvmDqa329MDSLWvCaCwSjyrikupRfykFHEEJn6Uu npPA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20230601; t=1772210456; x=1772815256; h=content-transfer-encoding:mime-version:references:in-reply-to :message-id:date:subject:cc:to:from:x-gm-gg:x-gm-message-state:from :to:cc:subject:date:message-id:reply-to; bh=jdhIwXbtzriV4OW5ztdIybKDlCas+wm2/e72G4CdWfk=; b=fPWPlIvkVkbSf9IaP7Ag79R6lW6v06EjDSv2Yml3RYePSE3rsa1XCD8XkxVRDjzsQm OvBSI2Qr0dE1KOJZfPA3yNwvyJeAmVu7K8ttCauRiHsHSVP+nQoiib2hW8z48TQmUYoj yeuEW4mQTZOWRpg6IvECoFmYgx3xRSWdCQZJkfY5RBCMmClGswGO4zV+6nXOSOge9A/v rKAIC17NAL4XlTDpXx+FXCUQoQkCSsxu05jrEbrg0WxKWQo4trZxHQke4OACB/UEzZnh 4CQ38peeyDsHG31ALSacLXjm4TScWeN9lO8Bqp46mH2LRmCCm2LeB3ZtdAFP2C7bqqn0 mucg== X-Forwarded-Encrypted: i=1; AJvYcCXFAx/tjCAoMOxZpIrQH42oQSYiqIpditbyB2Zpd/dTHQAtSlrs8BMDnxC5U3/1kVL1M2R2DpnIkFjbxRQ=@vger.kernel.org X-Gm-Message-State: AOJu0Yy19DcH0gISE7HD6dd2Otnk4RJWGg8/HPuvNTixPlF4Q6TCMr2R 0HGnsNav3KQHjfsAYQPF9Z1ZJhNSrwGPAlOzJ+5C+5Jw5uPNYUUdTirJ X-Gm-Gg: ATEYQzwe9uTA32iUQwDn1TU3sAfoCv2qtIeJ2t80iMSNOAwSomHQNhObny7kK8T8TeF KTuQiipP1Rm/yBbmNC9xj4nyV7lJ+thltiMM8mkeiF2vP8DzOIfL/ER1NFhjZrWa+DoiHmMQ/Iw xDjfKyVYltiVOEaHfloaJaQQRlwFx2Jya8pId8NeBPRiaKiErCdB75wMtwpOfKl+6mpSLQoGAqe mmAbwwODHMwih/sJS6dVyv/bhsTFmOBP/umZE1MHrN8D0NkBILsaz0EJQX7joajcKlhdyQB3Psd RZX9ZY6PMjC0fxhS/Xb353XSU5yuMcTY4Z1I0tUJAXIIvTU2rsj2k2ib5FqGPueZwbarQS7nqbZ eBvOOVS2S4Sq10Q6t3TeMndJHBg7ja1peA9vMQlK78kvfOyvkBhwSoEEVwh1Bhq3BTqWim/wTKQ dGoG7rk/LZJoBhnRTWAgO1xev0zV3Nl6TuiU3eN2p+Hw+hrYO5FRyqA+yOtK5ZRfzcstC1C0fZN /pVnTOdgyTktLOZRRxN9UY7pp4= X-Received: by 2002:a05:693c:2c97:b0:2ba:8961:e1a1 with SMTP id 5a478bee46e88-2bde1d31e56mr1547097eec.22.1772210455641; Fri, 27 Feb 2026 08:40:55 -0800 (PST) Received: from localhost.localdomain (108-214-96-168.lightspeed.sntcca.sbcglobal.net. [108.214.96.168]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2bdef9700ffsm220707eec.28.2026.02.27.08.40.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Fri, 27 Feb 2026 08:40:55 -0800 (PST) From: Sun Jian To: Andrii Nakryiko , Shuah Khan Cc: Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, Sun Jian Subject: [PATCH 2/2] selftests/bpf: bpf_cookie: make perf_event subtest trigger reliably Date: Sat, 28 Feb 2026 00:40:37 +0800 Message-ID: <20260227164037.84110-3-sun.jian.kdev@gmail.com> X-Mailer: git-send-email 2.43.0 In-Reply-To: <20260227164037.84110-1-sun.jian.kdev@gmail.com> References: <20260227164037.84110-1-sun.jian.kdev@gmail.com> Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Transfer-Encoding: 8bit The perf_event subtest relies on SW_CPU_CLOCK sampling to trigger the BPF program, but the current CPU burn loop can be too short on slower systems and may fail to generate any overflow sample. This leaves pe_res unchanged and makes the test flaky. Make burn_cpu() take a loop count and use a longer burn only for the perf_event subtest. Also scope perf_event_open() to the current task to avoid wasting samples on unrelated activity. Tested: ./test_progs -t bpf_cookie/perf_event -vv (30 runs): 0 failures Signed-off-by: Sun Jian --- .../selftests/bpf/prog_tests/bpf_cookie.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c index 50f5e11e6e65..35adc3f6d443 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c @@ -6,6 +6,7 @@ #include #include #include +#include #include #include #include @@ -431,11 +432,12 @@ static void tp_subtest(struct test_bpf_cookie *skel) bpf_link__destroy(link3); } -static void burn_cpu(void) +static void burn_cpu(long loops) { - volatile int j = 0; + long j = 0; cpu_set_t cpu_set; - int i, err; + long i; + int err; /* generate some branches on cpu 0 */ CPU_ZERO(&cpu_set); @@ -443,9 +445,10 @@ static void burn_cpu(void) err = pthread_setaffinity_np(pthread_self(), sizeof(cpu_set), &cpu_set); ASSERT_OK(err, "set_thread_affinity"); - /* spin the loop for a while (random high number) */ - for (i = 0; i < 1000000; ++i) + for (i = 0; i < loops; ++i) { ++j; + barrier(); + } } static void pe_subtest(struct test_bpf_cookie *skel) @@ -470,7 +473,7 @@ static void pe_subtest(struct test_bpf_cookie *skel) if (!ASSERT_OK_PTR(link, "link1")) goto cleanup; - burn_cpu(); /* trigger BPF prog */ + burn_cpu(100000000L); /* trigger BPF prog */ ASSERT_EQ(skel->bss->pe_res, 0x100000, "pe_res1"); @@ -489,7 +492,7 @@ static void pe_subtest(struct test_bpf_cookie *skel) if (!ASSERT_OK_PTR(link, "link2")) goto cleanup; - burn_cpu(); /* trigger BPF prog */ + burn_cpu(100000000L); /* trigger BPF prog */ ASSERT_EQ(skel->bss->pe_res, 0x200000, "pe_res2"); -- 2.43.0