From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 1991D3B6C13 for ; Thu, 16 Apr 2026 12:21:37 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342099; cv=none; b=R14bMTeojfdxjpJIJXsI6eRvmCPTNAnOT7Mu0/rqrhLqW8A8Yavyu+qvLD2WI+AHxkbZLDM0lDPqewo8dnFCphr/0N0GpXOFNOt5T0S01Yuug2b3/VR9lRUsdSaEDPEJ4WJb6r7CYXMKDJbO3O5jLwZutTijpvYSjh2SnCJKskI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342099; c=relaxed/simple; bh=r4Eeeqlnty5JWhyFFs4PmBr0ldtcOWrItly6lcvC8Ts=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jKkwFHAfxMsB/BvUK5+/dlM2Dxs4I7HN4h0ObH/FF5no6BBNYVa+Zpz/a0ZNIix9wLijktVvUTQGZiylM+ovg8/2xSxUsgFrKKrnqFkJwheXtC6dKwgUMUMG7z9RWn9DYcmfxsfqhjdzldy466GzKOdZb3Ugh7u9QfwGJclrh7o= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=OvLTR9nn; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="OvLTR9nn" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-4852a9c6309so73283305e9.0 for ; Thu, 16 Apr 2026 05:21:37 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342096; x=1776946896; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Sg2etNAfQKZBd7rcNCY3p33XRFv6QLBK/6YkWrjaoRM=; b=OvLTR9nnkUjqofBJqfc1Di0qjWYEDn6IJm+pFoN018SP5viSbn1YUeL+3ftZlSuxED +b/YmNdslq2qM0YTfW0mRWBddssKKSNLee/aFlmqkwO85xhRNncTQGslIzeUurLO2t5s bpIOpxm5qrAwmwG+x0k+xZurzcEbYpUhimFCBC4RSvy3dbLQ50LqIcfTgjkEebvYbxdV HjAPWYRIQOOlVt9L2mdk7aG8w2wTYBj4WQw1pHFhw/TMtpyFs0P/WInWk5rA6XW/WrQU mdSchGFbPy626dPOU09Dn9l7WLLQaRcj1U+wc2ouYOJs2sIrNuLC8uyMNHc/XFnwmZc1 U5Yw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342096; x=1776946896; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Sg2etNAfQKZBd7rcNCY3p33XRFv6QLBK/6YkWrjaoRM=; b=CHx0b1gUUSEPmDQm1xoyBZDg2U0deKTfRskwT2r5NYtnP9hyB55TEa7HePdCVTgfQG v4JM0Z1ITA40+MnY98MI/mXN/kA5P4hNX6GcSGlOKYdZbyyJZ7Q41AUldVJSwfgDlTn+ t8FiXihe/hdlQ/XxYgEjTHt9RFmacfKWbKzEYMh2Bit8ZUCfq6lbdz2wJxH5FkgN/mxq Y9aFReQg8YtOUFdkfngt0LsjpkkuPBKe9gXmuNN97QBrDC4Tn+52kw5kqBIybiy1o+F5 5BUPT4mes1gRKrMoTeVfZP4u40fI32/f1MyZq3WRtY0ZfVmq8slrQkVvSs8Wz7jbm1W4 G0RQ== X-Forwarded-Encrypted: i=1; AFNElJ+VQigQkHXG5meGNg0cN6s0Uwh2qfDzzjhnAwOxEieavucGpSr1vqBnjxsW6nwWkMMl/oVNPRX8W9zRvu0=@vger.kernel.org X-Gm-Message-State: AOJu0YwXcDq1/G97zc02s5ab2KIGkhnSYtGVWSGTHMsxnJHoQ/ZYV6PS pAavDVoGar69Qf9s1eAcpZd6kEvoca6o1nsQ1AK6/oyv7qjBZNmRHn2lySlzOpCX4g8= X-Gm-Gg: AeBDieshii0REBpg5k0P1/Bk7I2oE7WoC/zmUM2Rf5pvgSIEH4H3IOzGuveGLnMk5uX mklGVUvw7w0snMAthnKIvAtKH3v7eSrVFah+CIUBao9CeeZEKRmpjcYbHsiglcuGJaG9MhqCn5k ysixkkSyBlGjykyoIKvkcPD+DaRu7TkdwGZ6ZoAO8y18/KLho/EugIOb+LyrLV6iLrCacNhZdJF bYbgoTtoup/l1QRUko5fH13lGDyXDEpyycB3mQXTktUW/11sSWDhNFde78DdtCwttmL17A/ujlx GLmmepl0DDwnAOhUm0CsOjB9JFuhKQHf3yOYO3GZE5+S54hz8uzg8+VP55E+CIaRrmzDrmzgkzB 7vC66r5yjFj76Rn/WhxN7TrD//YSKQfmRLKldmCDQrdrdHj2rNF57i8y7+9OJniKodAk0cCRyCM cwSYT7ykxdiQs= X-Received: by 2002:a05:600c:350c:b0:488:9661:2570 with SMTP id 5b1f17b1804b1-488d67ce8c2mr352427795e9.8.1776342096400; Thu, 16 Apr 2026 05:21:36 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8f569f4bsm6849514eec.21.2026.04.16.05.21.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:21:35 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:18 -0300 Subject: [PATCH bpf-next v6 01/11] selftests/bpf: Add BPF_STRICT_BUILD toggle Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-1-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=1377; i=rbm@suse.com; h=from:subject:message-id; bh=r4Eeeqlnty5JWhyFFs4PmBr0ldtcOWrItly6lcvC8Ts=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QMp7IYcl3451BzQO8aHK4F4373QgzlaelKKslfNxqJXSlPxFdg8eg4NfZcpJgAhyK95KEuAxrkG 9g5UX8B023Qc= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Add BPF_STRICT_BUILD (default 1) to control whether BPF compilation failures are fatal. When set to 0, failures are tolerated and skipped objects are reported, as implemented by subsequent patches in this series. When set to 1 (the default), the build fails on any error, preserving the existing behavior for CI and direct builds. Users can opt in to permissive mode on the command line: make -C tools/testing/selftests \ TARGETS=3Dbpf SKIP_TARGETS=3D BPF_STRICT_BUILD=3D0 Suggested-by: Alan Maguire Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 78e60040811e..c8ba8ccc2c6d 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -44,6 +44,12 @@ SKIP_LLVM ?=3D SKIP_LIBBFD ?=3D SKIP_CRYPTO ?=3D =20 +# When BPF_STRICT_BUILD is 1, any BPF object, skeleton, test object, or +# benchmark compilation failure is fatal. Set to 0 to tolerate failures +# and continue building the remaining tests. +BPF_STRICT_BUILD ?=3D 1 +PERMISSIVE :=3D $(filter 0,$(BPF_STRICT_BUILD)) + ifeq ($(srctree),) srctree :=3D $(patsubst %/,%,$(dir $(CURDIR))) srctree :=3D $(patsubst %/,%,$(dir $(srctree))) --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 D20313B7B91 for ; Thu, 16 Apr 2026 12:21:41 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342103; cv=none; b=q74mvhWuHfCoYSVBFABseDLuNK30yok7ocHxU/mR3WBdph3zDO6i6UjOEnNxGprxrFPwAEammtPXg5D4sF33ri8iTFwg6byHgxkIUgTXDf1AnVZnXu4na6k+4lIbDwWApRpoQV96v/GXXJWR3UZ46XE5pWGBpG8F5IXrbLOn35k= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342103; c=relaxed/simple; bh=XZauXOAieRbpp0BheMwqtILoWamalkYTAPiOZR3YiEM=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GSYuarQzTBOjcf4bpYL62tW6leViLyi7HKVoWo6Gdr/lBwEIbgxb037/LpyLZt8j/VqMTN+dCrGXekNd/3zOEqaOIwq2tytKlvFpUBYkys2a+Wh3T2p4N07K4Wol1eYmvyD3PtFazwhsZLWpcpcFoecVmv++3zoyTnENV+RsQ8w= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=U3HkFmXR; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="U3HkFmXR" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-4852b81c73aso74082235e9.3 for ; Thu, 16 Apr 2026 05:21:41 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342100; x=1776946900; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=7SPqUzgQ8HO3ei5P3R3nHBlHmYH40ZRSaPj30DCTMfc=; b=U3HkFmXRgg6BHEWUDKVJefqlvLvmpblqiA3WRl78cUXh6MaIRQ3joY602gu5FnWlAG ENYfy4aINM4+PeGBZ+zWwkLOFw9Uk//wysN0QpoZhMjkuV4Rv1mDOG0VDkQuYIMuOJSm R1ksJdLY6jyzpXpCh7MV0QhANQTdrZh4CkCpuFhTVYhKJqYDCDAK9Z7BbBlDPv4K/JhF OPJ4HXMT+JNe58V6eSjLMW3c1FrCqBes6MvCWU9qLUmBEhqXw6BGL5wzftQSyhnkzU6+ iCmXMUBh7Ab6zZC+vdlxqJD++tLSTRoburkCXjZWUGxaYFZYSuwSK8hvjdVAu/KJ+rJk FYmg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342100; x=1776946900; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=7SPqUzgQ8HO3ei5P3R3nHBlHmYH40ZRSaPj30DCTMfc=; b=LmNAn2p4JkmkF4ww7m8AkUEkQIARoE6+0yurGFE3OpiZJEMpAf4vc/OlqcJ5m34bJT dpWY/kOO81Xya7/Gy0x2fG0HazDMMgpmLVEzjjG8q5toqPnPkE2YNAjzJVOmhjJkCMBm ++zs18GD49AKR/7uIJlfZUkUzd9QdsDb97EN5oiEIXPi/mpQ+pXDHfK40gHeHtOXv31U QJ/Qd6iFGvcY6eAwh8Pp2MqjjwV/3vZ2zhBwhjfvbSnekRP/mAZ5nhL88I7P/7ZhDuox 9hSyz9v1kMiatonwUzg3HcN6ocr/P/nnQrojwxE2leeHcJ3UwDeQidryu/PPrud5c/P5 3AZA== X-Forwarded-Encrypted: i=1; AFNElJ8QHSDkqv8Ut/CWU/CCAAsAXVSpc+zwmh/iXSwNjR4n2dNo3yMuocd+H4f8iPqxuDyK3aNqbYRif7e9oQw=@vger.kernel.org X-Gm-Message-State: AOJu0YyoP9mTrlK79KSXbg0FLUQ8LFBhcPoypYyUKz3CuadlPUiCJwyA GvRXN/D+LaiQSHzwqAbeh0IDTb4wvi3Rv1vSVgPCy28wpzevZDziglYu1lS5Ie7IS2E= X-Gm-Gg: AeBDieuX/4XR4dK5sq2QyF5r7OnNemiRh0BysP5YLIh3Eelpez1qRYJ1EQHf3QXgKEO O2J82pG/GkM4YwE1NrS7kpZHR3snbzRLdXVOOojPvOoLGk8JoghjDonyRtdIDWV1hxI/aJu2+7s aWBLRMrIiLPGYM+HY138Cy5X+ZJ2sX9ltqeCJwUWziB66DEkjkrkhy8w/0u327xp3p0LR0MgWTk A7GwmQfFj+aam9ylUYc6BWlt/znjbuC/nq59JB2dVa6qbinF8cB6aysUlel0o+qmUUPcv4UmCqI Tyu+7fmQZiRlJOnC4hzxxRd1unVM9ReYCd9ID3ezSeRDmDxmQIU/TztoX+dAKnF32ctC2Zppw0+ 0symleDJ/aEcWYAFR92na7KhdgQP+ynidfeY7Zyg1aUz+KGzckPlVgXSdBdbXIM/ED2P0Bbo1Ge qrj9WndhlxV3Q= X-Received: by 2002:a05:600c:c0dc:b0:488:aa3d:fab1 with SMTP id 5b1f17b1804b1-488d68364f2mr239993935e9.17.1776342100172; Thu, 16 Apr 2026 05:21:40 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c606db2sm6895637eec.11.2026.04.16.05.21.38 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:21:39 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:19 -0300 Subject: [PATCH bpf-next v6 02/11] selftests/bpf: Fix test_kmods KDIR to honor O= and distro kernels Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-2-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=3813; i=rbm@suse.com; h=from:subject:message-id; bh=XZauXOAieRbpp0BheMwqtILoWamalkYTAPiOZR3YiEM=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QJ2CGdvjzyCdFFHrg/vER0+bzdB8I6chKCPSdld8J+2xnYtc+PPtkRjQ9qd7hEoaU1l8fkIpwdr BUCqGRNcZUwo= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g test_kmods/Makefile always pointed KDIR at the kernel source tree root, ignoring O=3D and KBUILD_OUTPUT. On distro kernels where the source tree has not been built, the Makefile had no fallback and would fail unconditionally. When O=3D or KBUILD_OUTPUT is set, pass it through so kbuild can locate the correct kernel build directory (Module.symvers, scripts, etc.). Note that the module artifacts themselves still land in the M=3D directory, which is test_kmods/; O=3D only controls where kbuild finds its build infrastructure. Fall back to /lib/modules/$(uname -r)/build when neither an explicit build directory nor an in-tree Module.symvers is present. Guard both all and clean against a missing KDIR so the step is silently skipped rather than fatal. Make the parent Makefile's cp conditional so it does not abort when modules were not built. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 4 ++-- tools/testing/selftests/bpf/test_kmods/Makefile | 24 +++++++++++++++++++++= --- 2 files changed, 23 insertions(+), 5 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index c8ba8ccc2c6d..52176dc226f1 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -296,7 +296,7 @@ $(addprefix test_kmods/,$(subst .ko,%ko,$(TEST_KMODS)))= : $(VMLINUX_BTF) $(RESOLV =20 $(TEST_KMOD_TARGETS): $(addprefix test_kmods/,$(TEST_KMODS)) $(call msg,MOD,,$@) - $(Q)cp test_kmods/$(@F) $@ + $(Q)$(if $(PERMISSIVE),if [ -f test_kmods/$(@F) ]; then )cp test_kmods/$(= @F) $@$(if $(PERMISSIVE),; fi) =20 =20 DEFAULT_BPFTOOL :=3D $(HOST_SCRATCH_DIR)/sbin/bpftool @@ -711,7 +711,7 @@ $(TRUNNER_LIB_OBJS): $(TRUNNER_OUTPUT)/%.o:$(TOOLSDIR)/= lib/%.c $(TRUNNER_BINARY)-extras: $(TRUNNER_EXTRA_FILES) | $(TRUNNER_OUTPUT) ifneq ($2:$(OUTPUT),:$(shell pwd)) $$(call msg,EXT-COPY,$(TRUNNER_BINARY),$(TRUNNER_EXTRA_FILES)) - $(Q)rsync -aq $$^ $(TRUNNER_OUTPUT)/ + $(Q)rsync -aq $(if $(PERMISSIVE),--ignore-missing-args) $$^ $(TRUNNER_OUT= PUT)/ endif =20 # some X.test.o files have runtime dependencies on Y.bpf.o files diff --git a/tools/testing/selftests/bpf/test_kmods/Makefile b/tools/testin= g/selftests/bpf/test_kmods/Makefile index 63c4d3f6a12f..10f202bd0d8c 100644 --- a/tools/testing/selftests/bpf/test_kmods/Makefile +++ b/tools/testing/selftests/bpf/test_kmods/Makefile @@ -1,5 +1,7 @@ TEST_KMOD_DIR :=3D $(realpath $(dir $(abspath $(lastword $(MAKEFILE_LIST))= ))) -KDIR ?=3D $(abspath $(TEST_KMOD_DIR)/../../../../..) +SRCTREE_KDIR :=3D $(abspath $(TEST_KMOD_DIR)/../../../../..) +KMOD_O :=3D $(or $(O),$(KBUILD_OUTPUT)) +KDIR ?=3D $(if $(KMOD_O),$(SRCTREE_KDIR),$(if $(wildcard $(SRCTREE_KDIR)/M= odule.symvers),$(SRCTREE_KDIR),/lib/modules/$(shell uname -r)/build)) =20 ifeq ($(V),1) Q =3D @@ -14,8 +16,24 @@ $(foreach m,$(MODULES),$(eval obj-m +=3D $(m:.ko=3D.o))) =20 CFLAGS_bpf_testmod.o =3D -I$(src) =20 +# When BPF_STRICT_BUILD !=3D 0, a missing KDIR is fatal (the default). +# When permissive, skip silently. +PERMISSIVE :=3D $(filter 0,$(BPF_STRICT_BUILD)) + all: - $(Q)$(MAKE) -C $(KDIR) M=3D$(TEST_KMOD_DIR) modules +ifeq ($(PERMISSIVE),) + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=3D$(KMOD_O),KBUILD_OUTPUT=3D) \ + M=3D$(TEST_KMOD_DIR) modules +else ifneq ("$(wildcard $(KDIR))", "") + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=3D$(KMOD_O),KBUILD_OUTPUT=3D) \ + M=3D$(TEST_KMOD_DIR) modules +endif =20 clean: - $(Q)$(MAKE) -C $(KDIR) M=3D$(TEST_KMOD_DIR) clean +ifeq ($(PERMISSIVE),) + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=3D$(KMOD_O),KBUILD_OUTPUT=3D) \ + M=3D$(TEST_KMOD_DIR) clean +else ifneq ("$(wildcard $(KDIR))", "") + $(Q)$(MAKE) -C $(KDIR) $(if $(KMOD_O),O=3D$(KMOD_O),KBUILD_OUTPUT=3D) \ + M=3D$(TEST_KMOD_DIR) clean +endif --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f44.google.com (mail-wm1-f44.google.com [209.85.128.44]) (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 949973B8945 for ; Thu, 16 Apr 2026 12:21:46 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.44 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342108; cv=none; b=IvVUgdtm9GvlMCBF45QzbXddoSzo7FPKLktN6fxBrPXtbWPSNIhpJRQT90M3UeqHrhgo3JF/z8idcVwuX4+cVbRlNRzoUBwerZz3Fssta+b/1Mdj9f05Aejkaiq3ajM/vRcTia0Jw1UeTo8y0pE8V8sJn5x32Y6oust3zOvTiq0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342108; c=relaxed/simple; bh=cj0P8iQTxhKx3bSgzRokYehM+wLn55oXvg8MqySgLRk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=WsaK0DeK6P/UOZO5W3FqZzW9Pr6Q7ZS0y4EpZgjum0mUhxr8CA6X4T4V5UNGxJyn9HhmQblys6xzb2Wgf6PkpVVdTlG2V8eVn2g4IY6vMRbCikHt9Ls76J8lTkcNFWfl9T/5V5QFGRx+OXZmYu5pMT7HTDGgdg9K0VGW8rAQJkc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=IThxrApI; arc=none smtp.client-ip=209.85.128.44 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="IThxrApI" Received: by mail-wm1-f44.google.com with SMTP id 5b1f17b1804b1-488a4bc360bso44161285e9.0 for ; Thu, 16 Apr 2026 05:21:46 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342105; x=1776946905; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=DM4jCKdr0JeR/MJj5InQvK1BxLcWidoDw2rXmGRB1mY=; b=IThxrApIMqUCZlIWfFGB8uMGMKkuTPL0I8q0ruFdoWlxghhQxH672Cb/u/vyrlBIaz xs1E2NKvOd4u78bbRGPygVxi85h6bGnqDNZRqk6ltknaQWYlEAod7FCQC+NQQvD97xUj A9UWqvUciGg7cgk4GkP959TNgTrqokWXHUuyGy9AncnQOWCrfLESLwQORDbtMmxw3bMy FKKsA9+LKWNB8HBG6BhrqKoajCfIT/zeFTD2C9ePG4SoH1J5CuNTor90QAjtN4w9QO3U V3O/tmKmm0PO7526Xuxn0ET3oajkToyuEBrWVaYPhGZZxumo0S8rrrsQikj74CeEMmEK DYjA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342105; x=1776946905; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=DM4jCKdr0JeR/MJj5InQvK1BxLcWidoDw2rXmGRB1mY=; b=YPeqKV/ErOS6wa9+B4eTQ8RbehZtTaRYc9QHIqURtcTw047Ng2eDZNEntmJNd+iCFE 7Z0QzATBjUeR+cubLtxJ3DYxZlPDnfDeaAZNtbYEv2HuGrKSXRkAdDDzF92/3ycipACT Qh252qRz/CfFlHT+1pajf7QKiThlQxQSqCNL38531jU+t0C/lfqOeEuz25WA9jlTzpBb g/qDo3OCpxPNl702VJykXce2CbWQkVPkPzEp+bcHEXcs4MqrOnhZH8CwpgEFbXZgOQVH jSeHDiNLpokz4dv6paDiQsF1M2MqmHnDOlMLkIsnrjyOuy2QywYttEpSEvEFMk+WGx96 uIpw== X-Forwarded-Encrypted: i=1; AFNElJ+8uiESi4Q3WTtF6wQeJk7WU7nsBnmoVZmAXI/dTl4mt1SQuu92xbYztOyHBX3LN/I5XP7ngCZjFpQuMQo=@vger.kernel.org X-Gm-Message-State: AOJu0YxlGOdv2bNBAKbROFb3KPPb4TIZF+LAfc05xoxaTmoE8ZQgXEoL zI5OafcoMIRkmkvKroiqIp4pdT6X+WOzI6quotfg+NKPjryuwf74HhjKdEw+OR7J6Mc= X-Gm-Gg: AeBDietGTajlm+DeNJmVFOTOyi+vZHCG1Xq/vo6R+i4/2BM/77soPlqYwB0GMGEmWjl TCviB8+3LpotNbVK6ZiOj8uML86HQpkzVbm4NYCh5cMGPZb07oVaHvo86MipiJhqPMlvKq5ekkq vXLeHPhoIJbJiqkBJ7Sf1o1oIxzednA3sCXJhdLfja7XcJNYvoST1eOKYdMIioHTIAU8Rihy+bk jsHawDtA9sMkdI26Iv/J+XyBykfymAHdzhPsV6anwbM85E2Q8rvedHxLPL3tFsdojJtom5Rfoza xV+ydOvdhH7EKqNymcx3/8HfxpHb5sPuPs1Mr4n/fiRVXGB/atQfwVnB6ZIbu4SDw+/vUSgB5xE yeQGNb/BgUA1+xosewUXNaex1/+7dmmX//U0ZL1e12VkDiUQke8h9LBbLWIAxKWk7kxR+0e1Cbo 0y/btRU0AD87LDe7DR5JLy3g== X-Received: by 2002:a05:600c:19cd:b0:485:17a7:b9c7 with SMTP id 5b1f17b1804b1-488d67e3671mr354798905e9.10.1776342104828; Thu, 16 Apr 2026 05:21:44 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8f65f9bcsm8633693eec.22.2026.04.16.05.21.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:21:43 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:20 -0300 Subject: [PATCH bpf-next v6 03/11] selftests/bpf: Tolerate BPF and skeleton generation failures Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-3-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=9336; i=rbm@suse.com; h=from:subject:message-id; bh=cj0P8iQTxhKx3bSgzRokYehM+wLn55oXvg8MqySgLRk=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QE3v9Lejo+IGMqpIGdLzjU2AnJh5dBe2/o3HV9OyvRymHIQPxXqwXSQGNrwPtoQRfEJyI7PBfHG BpOSxoQIeBgc= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Some BPF programs cannot be built on distro kernels because required BTF types or features are missing. A single failure currently aborts the selftests/bpf build. Make BPF object and skeleton generation best effort: emit SKIP-BPF or SKIP-SKEL, remove failed outputs so downstream rules can detect absence, and continue with remaining tests. Apply the same tolerance to linked skeletons (TRUNNER_BPF_SKELS_LINKED), which depend on multiple .bpf.o files and would otherwise abort the build when any dependency is missing. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 108 +++++++++++++++++++++++--------= ---- 1 file changed, 73 insertions(+), 35 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 52176dc226f1..b23703f2cf89 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -477,22 +477,26 @@ $(OUTPUT)/cgroup_getset_retval_hooks.o: cgroup_getset= _retval_hooks.h # $4 - binary name define CLANG_BPF_BUILD_RULE $(call msg,CLNG-BPF,$4,$2) - $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv3 -o $2 + $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv3 -o $2 $(if $(PE= RMISSIVE),|| \ + ($(RM) $2; printf ' %-12s %s\n' 'SKIP-BPF' '$(notdir $2)' 1>&2)) endef # Similar to CLANG_BPF_BUILD_RULE, but with disabled alu32 define CLANG_NOALU32_BPF_BUILD_RULE $(call msg,CLNG-BPF,$4,$2) - $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv2 -o $2 + $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv2 -o $2 $(if $(PE= RMISSIVE),|| \ + ($(RM) $2; printf ' %-12s %s\n' 'SKIP-BPF' '$(notdir $2)' 1>&2)) endef # Similar to CLANG_BPF_BUILD_RULE, but with cpu-v4 define CLANG_CPUV4_BPF_BUILD_RULE $(call msg,CLNG-BPF,$4,$2) - $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv4 -o $2 + $(Q)$(CLANG) $3 -O2 $(BPF_TARGET_ENDIAN) -c $1 -mcpu=3Dv4 -o $2 $(if $(PE= RMISSIVE),|| \ + ($(RM) $2; printf ' %-12s %s\n' 'SKIP-BPF' '$(notdir $2)' 1>&2)) endef # Build BPF object using GCC define GCC_BPF_BUILD_RULE $(call msg,GCC-BPF,$4,$2) - $(Q)$(BPF_GCC) $3 -DBPF_NO_PRESERVE_ACCESS_INDEX -Wno-attributes -O2 -c $= 1 -o $2 + $(Q)$(BPF_GCC) $3 -DBPF_NO_PRESERVE_ACCESS_INDEX -Wno-attributes -O2 -c $= 1 -o $2 $(if $(PERMISSIVE),|| \ + ($(RM) $2; printf ' %-12s %s\n' 'SKIP-BPF' '$(notdir $2)' 1>&2)) endef =20 SKEL_BLACKLIST :=3D btf__% test_pinning_invalid.c test_sk_assign.c @@ -598,47 +602,81 @@ $(TRUNNER_BPF_OBJS): $(TRUNNER_OUTPUT)/%.bpf.o: \ $$($$<-$2-CFLAGS),$(TRUNNER_BINARY)) =20 $(TRUNNER_BPF_SKELS): %.skel.h: %.bpf.o $(BPFTOOL) | $(TRUNNER_OUTPUT) - $$(call msg,GEN-SKEL,$(TRUNNER_BINARY),$$@) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.linked1.o) $$< - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked1.o) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.linked3.o) $$(<:.o=3D.linked2.o) - $(Q)diff $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked3.o) - $(Q)$$(BPFTOOL) gen skeleton $$(<:.o=3D.linked3.o) name $$(notdir $$(<:.b= pf.o=3D)) > $$@ - $(Q)$$(BPFTOOL) gen subskeleton $$(<:.o=3D.linked3.o) name $$(notdir $$(<= :.bpf.o=3D)) > $$(@:.skel.h=3D.subskel.h) - $(Q)rm -f $$(<:.o=3D.linked1.o) $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked3.= o) + $(Q)$(if $(PERMISSIVE),if [ ! -f $$< ]; then \ + $$(RM) $$@ $$(@:.skel.h=3D.subskel.h); \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + exit 0; \ + fi;) \ + printf ' %-12s %s\n' 'GEN-SKEL' '[$(TRUNNER_BINARY)] $$(notdir $$@)' 1>&= 2; \ + $$(BPFTOOL) gen object $$(<:.o=3D.linked1.o) $$< && \ + $$(BPFTOOL) gen object $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked1.o) && \ + $$(BPFTOOL) gen object $$(<:.o=3D.linked3.o) $$(<:.o=3D.linked2.o) && \ + diff $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked3.o) && \ + $$(BPFTOOL) gen skeleton $$(<:.o=3D.linked3.o) name $$(notdir $$(<:.bpf.o= =3D)) > $$@ && \ + $$(BPFTOOL) gen subskeleton $$(<:.o=3D.linked3.o) name $$(notdir $$(<:.bp= f.o=3D)) > $$(@:.skel.h=3D.subskel.h) $(if $(PERMISSIVE),|| { \ + $$(RM) $$@ $$(@:.skel.h=3D.subskel.h); \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + }) && \ + rm -f $$(<:.o=3D.linked1.o) $$(<:.o=3D.linked2.o) $$(<:.o=3D.linked3.o) =20 $(TRUNNER_BPF_LSKELS): %.lskel.h: %.bpf.o $(BPFTOOL) | $(TRUNNER_OUTPUT) - $$(call msg,GEN-SKEL,$(TRUNNER_BINARY),$$@) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked1.o) $$< - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked1.o) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked3.o) $$(<:.o=3D.llinked2.o) - $(Q)diff $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) - $(Q)$$(BPFTOOL) gen skeleton -L $$(<:.o=3D.llinked3.o) name $$(notdir $$(= <:.bpf.o=3D_lskel)) > $$@ - $(Q)rm -f $$(<:.o=3D.llinked1.o) $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinke= d3.o) + $(Q)$(if $(PERMISSIVE),if [ ! -f $$< ]; then \ + $$(RM) $$@; \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + exit 0; \ + fi;) \ + printf ' %-12s %s\n' 'GEN-SKEL' '[$(TRUNNER_BINARY)] $$(notdir $$@)' 1>&= 2; \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked1.o) $$< && \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked1.o) && \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked3.o) $$(<:.o=3D.llinked2.o) && \ + diff $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) && \ + $$(BPFTOOL) gen skeleton -L $$(<:.o=3D.llinked3.o) name $$(notdir $$(<:.b= pf.o=3D_lskel)) > $$@ $(if $(PERMISSIVE),|| { \ + $$(RM) $$@; \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + }) && \ + rm -f $$(<:.o=3D.llinked1.o) $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) =20 $(TRUNNER_BPF_LSKELS_SIGNED): %.lskel.h: %.bpf.o $(BPFTOOL) | $(TRUNNER_OU= TPUT) - $$(call msg,GEN-SKEL,$(TRUNNER_BINARY) (signed),$$@) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked1.o) $$< - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked1.o) - $(Q)$$(BPFTOOL) gen object $$(<:.o=3D.llinked3.o) $$(<:.o=3D.llinked2.o) - $(Q)diff $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) - $(Q)$$(BPFTOOL) gen skeleton $(LSKEL_SIGN) $$(<:.o=3D.llinked3.o) name $$= (notdir $$(<:.bpf.o=3D_lskel)) > $$@ - $(Q)rm -f $$(<:.o=3D.llinked1.o) $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinke= d3.o) + $(Q)$(if $(PERMISSIVE),if [ ! -f $$< ]; then \ + $$(RM) $$@; \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + exit 0; \ + fi;) \ + printf ' %-12s %s\n' 'GEN-SKEL' '[$(TRUNNER_BINARY) (signed)] $$(notdir = $$@)' 1>&2; \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked1.o) $$< && \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked1.o) && \ + $$(BPFTOOL) gen object $$(<:.o=3D.llinked3.o) $$(<:.o=3D.llinked2.o) && \ + diff $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) && \ + $$(BPFTOOL) gen skeleton $(LSKEL_SIGN) $$(<:.o=3D.llinked3.o) name $$(not= dir $$(<:.bpf.o=3D_lskel)) > $$@ $(if $(PERMISSIVE),|| { \ + $$(RM) $$@; \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + }) && \ + rm -f $$(<:.o=3D.llinked1.o) $$(<:.o=3D.llinked2.o) $$(<:.o=3D.llinked3.o) =20 $(LINKED_BPF_OBJS): %: $(TRUNNER_OUTPUT)/% =20 # .SECONDEXPANSION here allows to correctly expand %-deps variables as pre= requisites .SECONDEXPANSION: $(TRUNNER_BPF_SKELS_LINKED): $(TRUNNER_OUTPUT)/%: $$$$(%-deps) $(BPFTOOL) = | $(TRUNNER_OUTPUT) - $$(call msg,LINK-BPF,$(TRUNNER_BINARY),$$(@:.skel.h=3D.bpf.o)) - $(Q)$$(BPFTOOL) gen object $$(@:.skel.h=3D.linked1.o) $$(addprefix $(TRUN= NER_OUTPUT)/,$$($$(@F)-deps)) - $(Q)$$(BPFTOOL) gen object $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h=3D.lin= ked1.o) - $(Q)$$(BPFTOOL) gen object $$(@:.skel.h=3D.linked3.o) $$(@:.skel.h=3D.lin= ked2.o) - $(Q)diff $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h=3D.linked3.o) - $$(call msg,GEN-SKEL,$(TRUNNER_BINARY),$$@) - $(Q)$$(BPFTOOL) gen skeleton $$(@:.skel.h=3D.linked3.o) name $$(notdir $$= (@:.skel.h=3D)) > $$@ - $(Q)$$(BPFTOOL) gen subskeleton $$(@:.skel.h=3D.linked3.o) name $$(notdir= $$(@:.skel.h=3D)) > $$(@:.skel.h=3D.subskel.h) - $(Q)rm -f $$(@:.skel.h=3D.linked1.o) $$(@:.skel.h=3D.linked2.o) $$(@:.ske= l.h=3D.linked3.o) + $(Q)$(if $(PERMISSIVE),for f in $$(addprefix $(TRUNNER_OUTPUT)/,$$($$(@F)= -deps)); do \ + if [ ! -f $$$$f ]; then \ + $$(RM) $$@ $$(@:.skel.h=3D.subskel.h); \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + exit 0; \ + fi; \ + done;) \ + printf ' %-12s %s\n' 'LINK-BPF' '[$(TRUNNER_BINARY)] $$(notdir $$(@:.ske= l.h=3D.bpf.o))' 1>&2; \ + $$(BPFTOOL) gen object $$(@:.skel.h=3D.linked1.o) $$(addprefix $(TRUNNER_= OUTPUT)/,$$($$(@F)-deps)) && \ + $$(BPFTOOL) gen object $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h=3D.linked1= .o) && \ + $$(BPFTOOL) gen object $$(@:.skel.h=3D.linked3.o) $$(@:.skel.h=3D.linked2= .o) && \ + diff $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h=3D.linked3.o) && \ + printf ' %-12s %s\n' 'GEN-SKEL' '[$(TRUNNER_BINARY)] $$(notdir $$@)' 1>&= 2 && \ + $$(BPFTOOL) gen skeleton $$(@:.skel.h=3D.linked3.o) name $$(notdir $$(@:.= skel.h=3D)) > $$@ && \ + $$(BPFTOOL) gen subskeleton $$(@:.skel.h=3D.linked3.o) name $$(notdir $$(= @:.skel.h=3D)) > $$(@:.skel.h=3D.subskel.h) $(if $(PERMISSIVE),|| { \ + $$(RM) $$@ $$(@:.skel.h=3D.subskel.h); \ + printf ' %-12s %s\n' 'SKIP-SKEL' '$$(notdir $$@)' 1>&2; \ + }) && \ + rm -f $$(@:.skel.h=3D.linked1.o) $$(@:.skel.h=3D.linked2.o) $$(@:.skel.h= =3D.linked3.o) =20 # When the compiler generates a %.d file, only skel basenames (not # full paths) are specified as prerequisites for corresponding %.o --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f47.google.com (mail-wm1-f47.google.com [209.85.128.47]) (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 42A6D3B7B6E for ; Thu, 16 Apr 2026 12:21:50 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.47 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342111; cv=none; b=psKJHi60BvwfLQ4xNVI5kXkIM2xRteeXp1BJQVcsXrlnZIJiTu5XpI8CyPv9pJ16O7gWMLTfnCZdwQcZ5H7IPzAA2VQAHC4twmQlXtqiEZ2C3mIrugGV+YGEkHJv9tFoIi2M40ytVVGRV4/5E7n4u3bZdLOzy2YgRYIRymmyWSg= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342111; c=relaxed/simple; bh=LGjyQ4DJZImIa+l6d/sVh7HyuyYJEGS3b/TTHgcThlA=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=IpVcwpiug3uIaz2WJAkA3t/6LSDXr83NvgXRubWUpjgg/rByspDSB1Q7n1CMMWxsSt4nndjprlus9/QBjr5/49C8/lkvIc6GEeid5wkqjhnFqVLj7rpweUtcrKXGCNYKvK30vdYsnrBB97MwUzsq5PSPKfJECXswHn2S1tzeKSc= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=ZTFEcwrU; arc=none smtp.client-ip=209.85.128.47 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="ZTFEcwrU" Received: by mail-wm1-f47.google.com with SMTP id 5b1f17b1804b1-488aa77a06eso129760855e9.0 for ; Thu, 16 Apr 2026 05:21:50 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342109; x=1776946909; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=z+TFkSx0/A90udZGFwEtC3VdLgE/56vsioCu8yOMo9s=; b=ZTFEcwrUT9NS0wqycHS3to1fFTUmDTxcfoY9ELTn+2TNxe9O1ikYcC+t6WT8O58lYz UKpvg5AMTuGmmMmt09vJJ0MU/YLrya2GjxBhAa3YNiARSqPrfltJixb/YanvH2BuK2wO GvsT7SrsoqNuBJlnHVgpQwmJFqOceV5UjX2cmOjUZelWMjkpAFF2W3d4h7biYqzoex3J RSjoteZxJsfNHi8A4v9RNUlI5nYrOehug+aI/eCknx4/IaloJv+d5x49G0VmTaRub0VZ 3hxVrdSxqwxf4j8Mh3zM7mG56DGWN6MX47qkU2T+wN1ynEO+DID5k3odk1XGCmd/8dyD DNSg== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342109; x=1776946909; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=z+TFkSx0/A90udZGFwEtC3VdLgE/56vsioCu8yOMo9s=; b=FxWZrcqt/nj3lALKrFyiCTGbPSfZtfjtiVGhJX1115+zZ/RfLwDKB2VJfo6m8e3jFB lARwO3W55gRCz9Wjt2feR7YLyMRHMF+3eI1FFordvWmclsXZBGQk7sPaLU3reZh7jWNs DRI6GDc30xSccuYAIaXEOCprbmHYyCUTqgA1ImUwWaBNarZU0gBRxUNlZ75wWU0XXt2H kcQAic92NQCWVMUfJAC7N1/b1NepcsQ128e0HMic9tBBYPK+4NSiIG5gU+lXdMpMWXkV 9hiuiKesdH+QgUWnam2NbZlcCNSGnp5hfUICEzwqJyW+mjyphMEc3TUscWt9lmN8y1IC lLCA== X-Forwarded-Encrypted: i=1; AFNElJ8k+FghEYZtKv6EXKlOlxWh923/F4Lgwab5KsH8C2vr9ALh69rOFC0HsHL1O8Wzx4SHq14iyu7ms9EUie4=@vger.kernel.org X-Gm-Message-State: AOJu0YxQY6qMiYQ00bnOVIS6dd5oyid/y7S9U/Nrxyiut585EPYP2/38 tXt8cOGuDcuZLMwSGBGmodsXcwZTSeurBU5b/m36lCYM5C0vuH9GUa1vtVce64JCYvM= X-Gm-Gg: AeBDiesC8W7vD9fYhGWrf5vmq15xkgpQpuA09ZPg28xXhd4CFS0U68TukLmJb+RuMnM Y+rZtBMblvup3dMi6zqOK6cHgvqqVwxlW/0oBDd9Tfm6Tb/oXpqd5/woGQRb+WcYS/G068/InQw ZYDAyk87yYiDtqHVF2je2GZtuVucn3y5R8JZ4ymgZ/9I4/yrQEcKfiaO6JUimYDmpd/347tB9V/ dkF3qW05m8rXuNeKYBjOAdbAgKiPAS1t6Kyt6jE/1Vf2I8X6ywCwL3QIcqpEDVZSGLn/4zWTsHq 6GFOyGuDIjgWgWrCEcAK5s9LnU3d/e4aVc12VqKCr2+joeolyYDxcCXDIkTdBV1dQXNZzA7P8gz gu8lYeo8yTF9B/TQbICJb8wcOuGHT52elgxwSPb25jLLef3hsvaFuU2LIi4k1x7rMX+tA4JN7r6 fHSlJOyd4s5b0= X-Received: by 2002:a05:600c:608e:b0:488:8185:e672 with SMTP id 5b1f17b1804b1-488d688d2fbmr359059085e9.30.1776342108536; Thu, 16 Apr 2026 05:21:48 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8fa5efb6sm7313415eec.28.2026.04.16.05.21.46 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:21:47 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:21 -0300 Subject: [PATCH bpf-next v6 04/11] selftests/bpf: Avoid rebuilds when running emit_tests Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-4-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=1555; i=rbm@suse.com; h=from:subject:message-id; bh=LGjyQ4DJZImIa+l6d/sVh7HyuyYJEGS3b/TTHgcThlA=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QDuUZlqeRiwM48yeqBaWgbQshRq/5+n9C2ohjmUxqNsIOut0CKCIU7ha8+GX4rUyfDTrcqgg3UW dPZDs0PFE1gA= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g emit_tests is used while installing selftests to generate the kselftest list. Pulling in .d files for this goal can trigger BPF rebuild rules and mix build output into list generation. Skip dependency file inclusion for emit_tests, like clean goals, so list generation stays side-effect free. Also add emit_tests to NON_CHECK_FEAT_TARGETS so that feature detection is skipped; without this, Makefile.feature's $(info) output leaks into stdout and corrupts the test list captured by the top-level selftests Makefile. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index b23703f2cf89..7d1e5d6c30ec 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -164,7 +164,7 @@ endef =20 include ../lib.mk =20 -NON_CHECK_FEAT_TARGETS :=3D clean docs-clean +NON_CHECK_FEAT_TARGETS :=3D clean docs-clean emit_tests CHECK_FEAT :=3D $(filter-out $(NON_CHECK_FEAT_TARGETS),$(or $(MAKECMDGOALS= ), "none")) ifneq ($(CHECK_FEAT),) FEATURE_USER :=3D .selftests @@ -723,7 +723,7 @@ $(TRUNNER_TEST_OBJS:.o=3D.d): $(TRUNNER_OUTPUT)/%.test.= d: \ $(TRUNNER_BPF_SKELS_LINKED) \ $$(BPFOBJ) | $(TRUNNER_OUTPUT) =20 -ifeq ($(filter clean docs-clean,$(MAKECMDGOALS)),) +ifeq ($(filter clean docs-clean emit_tests,$(MAKECMDGOALS)),) include $(wildcard $(TRUNNER_TEST_OBJS:.o=3D.d)) endif =20 --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f50.google.com (mail-wm1-f50.google.com [209.85.128.50]) (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 D52BD3B8BD9 for ; Thu, 16 Apr 2026 12:21:53 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.50 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342115; cv=none; b=rQf8y0hFdki9GjPXT2E2yAbZ3VPXD9NJ0BGFQxqkxAUchgjwqqvmXdjRKpuejKZF54+c5nM9WdQIzx3CVXMyI8GcN5//6rUHoTxv3mQwEGEZFAPehoPA8rPlP4McRWtIRSF7kSm230kHcBFRcNmlp4aNKLHV6hzOLYCtzpquUKI= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342115; c=relaxed/simple; bh=XgVya1wOhlmwdTfwic9NIwBF44z1ohItenbrD/1EmJk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=fDdVQnzEor1AIZIb0q1vTJ9RsjAHMumPPVWuOlh0wkHp8lhic+zB51KvW37k4DjcXHspKMgB9Vl+PG2/awCuGU4WEc2M1jfuhhU/b1/j+m+Fn0lLB4JhOmkiSfNzfub2YD12ILvGiiqK9fkoZGybgEn2Umf8S/9R+FyFsh7Px5Q= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=QbYRVj6Q; arc=none smtp.client-ip=209.85.128.50 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="QbYRVj6Q" Received: by mail-wm1-f50.google.com with SMTP id 5b1f17b1804b1-488b0046078so77264175e9.1 for ; Thu, 16 Apr 2026 05:21:53 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342112; x=1776946912; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=xFAhrEcbWUNGkUNeZMznGeM5elrK7tHUIUxprsV4V9k=; b=QbYRVj6QYNm3no06nsUDnDnZfgZkuioPO+chQvFaKJotfCWfRRHzaAZ/fysjoAplq9 fx1xixYOdBTIbzCK6ulQvXoxmI5v9XYNVwidl49ZdXN2MheQFEriu+HMU2tNA3DEM1N5 WiR0murIUUeaTxk2ey6etXSCCOADMHkfFBcNO1TFg15zj8h34mqzv9AZp1ovG4coVZT0 BikzrahY6uvNaLNsKfXRPZlUbY3djrS5ze0lFY1tNR0M8uhhh9A2wkBgwnNDo+Tnbj9C Aeykcryjdva6RTlhy6QqlC4LLZja4HYIc1OnG0nApjjrKifw84vQkOMu6ciB5iUqEeAe WUvQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342112; x=1776946912; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=xFAhrEcbWUNGkUNeZMznGeM5elrK7tHUIUxprsV4V9k=; b=jogWjaODxKVXuk2MFTlUFQgLgrhof4FOUjSbwiU1zLWq6atQl/0d6TSXUByZ+zfo0w GGvpGilmcAAOPRp2PA63LRhTbXHTXAOkmhN9kDh25xFsuD4JYV4uYXlLfaPk/HQUglzY NIVv/WnrEs2AIYZ16uCidSfKiizvFN+lVrOTNE9sfTF52CTqu+r5Ip4wdIDosmjO7YLs EGuhH+i+MrUFG17YVRhEEKR1DT6pfmG1TpFVzRDFrj1Npawn0RtVTEDRRBmHm8l+tuqX Spv7esMWWeYEgaHrJO9zV1br0tOH3durs7XA4rYzDU0qQ7IzTl8nInvrSgv/jrpEcJYd aBag== X-Forwarded-Encrypted: i=1; AFNElJ+l6IP1s7xVi9o6LlKRt7nPdiqPJWMsApkuF6Sd24KdaXkTQGA8oMo1tN+qkTgYzdESRl0Pt1mxiu2EINY=@vger.kernel.org X-Gm-Message-State: AOJu0Yz2b1CJICqX+jd0pkXyd2shMUMsX51IYDBxbDx9veLiE51XxWp4 di3bWjSLAFwQMg7ugPivE76qHafqJlq136Ls0MDzA67aV7ZgCKpUDsHasd8IkgAT1f8= X-Gm-Gg: AeBDietVljdEtERV/cbmCw34/lvZ5w4lMwsOc1PzJVcIjnalYYfMrJ3daFjFcd5uwYZ VzinziCCQGHtU8YLDSbI9d5t0FohGLttKXQp74mIrGuX31k16MTF8xafPRdNn37hGodPUaJUScZ c1PsnAlRS8QtwmxPtEI6HoBn6j5A42f1DvBcx/UKY+kO6ZswaZD/VXfs7vWbdTbIdVMB37rzODM 1AC69bWaRHgsVzgzWLwL7kRV0Mh+h1oxQiljIMLika90a2CC9yhAtN4XUXZ+LnZqx8etyKRhKLD xV9hoYIeZnfhUGsvOPaxyAtflMaao6Cx9Ya3ZLwCuMJIKMqu1RkkoUwVq5I9V2HVwHhKGQydzFL cQzd3ue/6ulEWde3UzT8Ywv32pHbOeM4enGkc8egEbNCFDlFavODyemR+fIloCI+mID1DZG550t PlWT0PIJ+6wpk= X-Received: by 2002:a05:600c:474c:b0:487:219e:42d with SMTP id 5b1f17b1804b1-488d67e72b7mr330683115e9.11.1776342112260; Thu, 16 Apr 2026 05:21:52 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6a860fsm5523313c88.11.2026.04.16.05.21.50 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:21:51 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:22 -0300 Subject: [PATCH bpf-next v6 05/11] selftests/bpf: Make skeleton headers order-only prerequisites of .test.d Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-5-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=1610; i=rbm@suse.com; h=from:subject:message-id; bh=XgVya1wOhlmwdTfwic9NIwBF44z1ohItenbrD/1EmJk=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QItrZ/Bp0ea4xdUjeMka6QelzaapYgbCSvM7vE7JnjuhA/jZzjrLzEE61ubPgurq3r7QDEOBjPb 4zqHoHV3kZgE= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g The .test.d dependency files are generated by the C preprocessor and list the headers each test file actually #includes. Skeleton headers appear in those generated lists, so the .test.o -> .skel.h dependency is already tracked by the .d file content. Making skeletons order-only prerequisites of .test.d means that a missing or skipped skeleton does not prevent .test.d generation, and regenerating a skeleton does not force .test.d to be recreated. This avoids unnecessary recompilation and, more importantly, avoids build errors when a skeleton was intentionally skipped due to a BPF compilation failure. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 7d1e5d6c30ec..b3eaa4a93707 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -717,11 +717,11 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o: \ $(TRUNNER_TEST_OBJS:.o=3D.d): $(TRUNNER_OUTPUT)/%.test.d: \ $(TRUNNER_TESTS_DIR)/%.c \ $(TRUNNER_EXTRA_HDRS) \ + $$(BPFOBJ) | $(TRUNNER_OUTPUT) \ $(TRUNNER_BPF_SKELS) \ $(TRUNNER_BPF_LSKELS) \ $(TRUNNER_BPF_LSKELS_SIGNED) \ - $(TRUNNER_BPF_SKELS_LINKED) \ - $$(BPFOBJ) | $(TRUNNER_OUTPUT) + $(TRUNNER_BPF_SKELS_LINKED) =20 ifeq ($(filter clean docs-clean emit_tests,$(MAKECMDGOALS)),) include $(wildcard $(TRUNNER_TEST_OBJS:.o=3D.d)) --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 8AD463B9616 for ; Thu, 16 Apr 2026 12:21:57 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342119; cv=none; b=WL08C7xZSD8A1+WkWP+NVHDl4YRmOlJuR6hdDc3ZQ3zjeGFwIcLxZzjwJACk8aIYZEs/gJdd+NKg6Y/iOAbNPdne+yY+lsLvZDkQQLZHtZTY7ki8fjwh3LQKLrNu4W56j/dd+/obI2kQNAZu1Ah7FsFoZkkKyoI6G7NLvnO7MLo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342119; c=relaxed/simple; bh=DXqH+tS5C79NJ+J0fc2RdGELwdh06ZOzO/YLsYIRLlg=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=ged6uJYZpZjVbcS1o+QHTKAPXsDo76n3TmmuN9KpIQAGjGj/SOl1ixDDny7sjI6B70ysD5XYlLOmbq2KuMFl1iDMAHPh260Eu1lG9nUlEauTsKih+IW/lFIfNT9wZLn7/rFtRVPkmVu/IzZ9riOMRppNlfk29bKUSF8/lqz/b5Y= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=ZS9Ivag5; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="ZS9Ivag5" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-488afb0427eso93578045e9.1 for ; Thu, 16 Apr 2026 05:21:57 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342116; x=1776946916; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=yTWGN6AOI1k/C39wxoz1HQGoi2yZHDMyrh0AH1c9Jig=; b=ZS9Ivag5yq3x7Q2UNpC0+1DbmIKXHSrFsqy2sPyLBMtmWw0Wj8p73f3AV+gk3ZWyc1 Ogd2wr+7DqbkDQlyqXIKJKyTe4abo9T8nGU7oYsW9cndRemlcMAO7H2byvmDmVaNcyNV mYEmfQ8PEQrVNgF8HY9/cUudvmAXPgUIKkzZIZf0lbolnmsKMCiz9gGAiVsxA6+glEHj FnNtTOSIPHOW5jw+i0edmUswc/7K+MU0JG+42EbW1JBBC0HBTPunE6UV356TKYzYbGY+ +PrWOR7BeQ4ep61XEJgxhUTHauM7Pop6lDLAmPde/DNsftWiOWkbKU6eAqRX0QRXRnm7 fRrQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342116; x=1776946916; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=yTWGN6AOI1k/C39wxoz1HQGoi2yZHDMyrh0AH1c9Jig=; b=Lw5aMvW+mORyFgfR7xxAzto+0kzCNdlbX5si3qZA2XzCaOnAw35aHAtNwXXcFdB2l0 +fULazeZY7SDlhas+XOUNjzz3VchLIrF0ZuvxCcaieJWWqWxkInu4Kyjqan+9zhpbn20 CvSknce6Hqwkxl/Xf1/Rh65hBq4Ywr0HbxgtTP5i5fsLVTQe0bOgNsENWeaYj0FdPWJp 5ZKZkwwJh+75AMEEM1t9vQlI4E+/xRwh4yxxQ+1qStaJ5kT9IM6wrRRQaNC94L+veChJ j2BewdzzWnjeNQbRD64+zaAGiO05bvjRJ05dOks4vdcK+cbML4AttgF02/VqYiJ6rGY2 71Kw== X-Forwarded-Encrypted: i=1; AFNElJ+JUECXGOe3r1CqGb8vjwskygjr7Z/xFHoFWETnVB8toNhcwSA6KKL0Am25XgaxvumeYR0FUo6zNzOnPBI=@vger.kernel.org X-Gm-Message-State: AOJu0YyBWnpSCskGvbsmJt2r7nYzDEyENc/hoYMaPmXdXUZtG3ynKK3Z Ceodih1rBSlw72mLCU8oWculh/FzJ15UcIHI0Rm1FLlgMcu27HJ7qdsAJplDWIHEyg4wJ+fj9ED fRWBZXHw= X-Gm-Gg: AeBDiet4JmAHZPGsJlfCS2jtvhYdGD1Regk5PNDz4HN3LrD28fpG/NYP8KzfiU9gQbf +5qQjsLPuLAU4xTDz8KDxaAuOE02Z7/yakgq8/lV4yqpvOuw1gClWk8NjgwMRkTgi0hJB3wsIXr 0e1wQozaQKuStrOF0b1rT8ObG1s5c/sC0WD2m0FnueSzgdh5bsWDHtWv8L7jbph/RvZtulo1R1N gUa68/DJKPFQDvzLcO0Jpifijax71+h9SCXTamyxi3TkcQkLoeArNV/RVk+zJDfYV/p7lJluOxm /iOwlg40/wYkbbO4f2Ljl52BQoX/7SRedRfo71dG7eobAbVPutclkh/iiLWUnL8/EY/EOF55PTj HRKH0Hu5+Iu81Ex7LxevgPq2aHjfHnCTt/11PGCuYmU1QQme8tgV5RZ/OnevfBTvWXDkidJEqKd ue6MA/RgB3aRI= X-Received: by 2002:a05:600c:c117:b0:487:4eb:d125 with SMTP id 5b1f17b1804b1-488d67e370bmr245841095e9.9.1776342115876; Thu, 16 Apr 2026 05:21:55 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c606925sm8842298eec.12.2026.04.16.05.21.54 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:21:54 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:23 -0300 Subject: [PATCH bpf-next v6 06/11] selftests/bpf: Tolerate test file compilation failures Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-6-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=2121; i=rbm@suse.com; h=from:subject:message-id; bh=DXqH+tS5C79NJ+J0fc2RdGELwdh06ZOzO/YLsYIRLlg=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QKigpFwzlStOY1ycEC12VqPdpBtK91EhWN628NnwRCrzsbHJFzsb4ToJ8GTSTzn3m4fy2E8uX19 iGwcjaAK0uA0= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Individual test files may fail to compile when headers or kernel features required by that test are absent. Currently this aborts the entire build. Make the per-test compilation non-fatal: remove the output object on failure and print a SKIP-TEST marker to stderr. Guard the BTFIDS post-processing step so it is skipped when the object file is absent. The linker step will later ignore absent objects, allowing the remaining tests to build and run. Use plain printf and $(Q) instead of $(call msg,...) in the BTFIDS block: the msg macro expands to @printf which is a make-recipe construct and is invalid as a shell command inside an if-then-fi body; $(Q) restores echo suppression at the recipe level where it is meaningful. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index b3eaa4a93707..5ad50d3ff2f8 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -708,11 +708,14 @@ $(TRUNNER_TEST_OBJS): $(TRUNNER_OUTPUT)/%.test.o: \ $(TRUNNER_TESTS_DIR)/%.c \ | $(TRUNNER_OUTPUT)/%.test.d $$(call msg,TEST-OBJ,$(TRUNNER_BINARY),$$@) - $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -MMD -MT $$@ -c $(CURDIR)/$$< $$(L= DLIBS) -o $$(@F) + $(Q)cd $$(@D) && $$(CC) -I. $$(CFLAGS) -MMD -MT $$@ -c $(CURDIR)/$$< $$(L= DLIBS) -o $$(@F) $(if $(PERMISSIVE),|| \ + ($(RM) $$(@F); printf ' %-12s %s\n' 'SKIP-TEST' '$$(notdir $$@)' 1>&2)) $$(if $$(TEST_NEEDS_BTFIDS), \ - $$(call msg,BTFIDS,$(TRUNNER_BINARY),$$@) \ + $(Q)if [ -f $$@ ]; then \ + printf ' %-8s%s %s\n' "BTFIDS" " [$(TRUNNER_BINARY)]" "$$(notdir $$@)";= \ $(RESOLVE_BTFIDS) --btf $(TRUNNER_OUTPUT)/btf_data.bpf.o $$@; \ - $(RESOLVE_BTFIDS) --patch_btfids $$@.BTF_ids $$@) + $(RESOLVE_BTFIDS) --patch_btfids $$@.BTF_ids $$@; \ + fi) =20 $(TRUNNER_TEST_OBJS:.o=3D.d): $(TRUNNER_OUTPUT)/%.test.d: \ $(TRUNNER_TESTS_DIR)/%.c \ --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f42.google.com (mail-wm1-f42.google.com [209.85.128.42]) (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 175053B6BF3 for ; Thu, 16 Apr 2026 12:22:01 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.42 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342123; cv=none; b=Idu9v+kquCGrIWLWkasDc4ZnueDXrPUevxz+RHUsSV5HFe3Gj+hoJTW9MtdzbOcXjYd6M/x1WEy8aOhv3FZ29e5EuvMZGYEUsi7KJvgPzDUMWO+4oTouydDpWD4JIegZX28VFPXxTxbEb5qzU4ZeyDyKoAgO+rlih/yrLtT2aDo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342123; c=relaxed/simple; bh=hWJ8+H+Blfisu42DAY3lw1ddjSGc9cOuFP++V3VJBps=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=GeUgCyXv6QsMe497F1fUMtgM+YaCMnIVWtO2LdxmKxvg5NfrovsmwamKSvQCIKTRSL2bZv0Q5o+WijziWfdiRPJhphaEVBNklo6y+2gV1jffRWyE8lQne15WfM/rv3xIAWF2rjcFaGUP+zqG74GXrLRDyL/MUqn/OoKwGZyIPQo= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=EhJVYZ1t; arc=none smtp.client-ip=209.85.128.42 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="EhJVYZ1t" Received: by mail-wm1-f42.google.com with SMTP id 5b1f17b1804b1-488e1a8ac40so75307375e9.2 for ; Thu, 16 Apr 2026 05:22:01 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342120; x=1776946920; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=CzY9VRtrVYWSoxe1jiy+R66Gwq92f7iLl/5W0Djg918=; b=EhJVYZ1t7evbkzypg3P4kPjAGDRIMcW4ED7bwUU7hxfDAwQb1xitUk8yj+SzatpOK9 whBU8JutByXhz3WBL+hQdfAmAYfN3+y7VixRtyDqcjdxp6FXGirFl10GFB0DFlZLz5tZ yjtAmMQaN8NpuiPtWvcFcP0J40YCUaR814KE99DwwQLGlHyhBj1tl54hIPCH+H+V4rB+ 1pwNiKDk3RxKsMP4d9iESU7M2eG8o4mZqAM0eLcgfSetRsY1p5qC9HQF9bhsJCg20+b7 HP+KptrLN+zQfpViluMI9WVuNO7Evr9F5kgUSwuazQSPCI9BkekXvBhsALLcFEFpE3LL qfIA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342120; x=1776946920; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=CzY9VRtrVYWSoxe1jiy+R66Gwq92f7iLl/5W0Djg918=; b=ig4yINyQsR32ocbFLd5ZtQv/JJNaKYtSUIceRmDgB73Y9W+fD6SK4F3zfwy9pUcpHz YDB9SUkoaK7vLK0iRrZy8ImoqfhmF54PkB8fiThyiFJJyPSH4LTMhq3ExeGSYzR/sNaB byykAuVzzFgxQJDO6URGmMqnTLh/KjSs+jUjttVb7dZk5cUHgNA37EFCOYWfgbci2ZTO Basrjsu019/1NsdqzB+/okwsZzWwOnDuEEkBgp1lwLhjsLj5sSg08EBJAD65PlCS5n8U mKbuJraRGXnwwrU4jU7pUjnO40m3XnDqAKRBXIqsR9yNeF3aISlRmfbMNXmXx6Dq8jg4 OwAA== X-Forwarded-Encrypted: i=1; AFNElJ8nwAIAftPaKSIpvbHND9UPiQh39g01RbEQMecZ4A9jfjtInC2TC4jAnAcX3HVDqqkQJb9OryVbqgkQZso=@vger.kernel.org X-Gm-Message-State: AOJu0YwFaYpQ7NnjCLJmWH6Af44WF4X4MuUJfoO8C28buDCXi2rMHUxW cKz1OpjD+8jDJVMFZ729O4y7tHk7PVflxtJXNnCR7R1aRFFauNxB20YExZIu6r70Hp0= X-Gm-Gg: AeBDievnGrIXZsLlHRHOZWHsCh5kXOBPEnBodvxcZaEHwHLv5Oveg9TUojrBjDyMHpK u0q8VTwcuHz0p5eKu9SzYmz0k+Kq9PDqUT1qRyWaYobx9BwQgFOfz5+tTJs+Rrl3SXTxLs/B1uf yC2cBhIM1RyTG23IN99htSF0a2pHZR6g6Iw8imjapHGROcaEulEX57jsiUGe3nOYc7TBMpXQRGQ f66PFPiThexWNbjm4BgO+KiTvvJNO9s54N4uHwVHaCQu5hbkGQfxdvMMx4zBt9jV3LOovdMipmg d9zIfs7grD+1+99stiPYavl4D7H++c/EsZKLVt6Rg2wwU2ozVMX1la8irYUZRGWvWzrDR5A7gSK vvDPFG/lqhg8qq5vJLeNhmqsHUmshjUWggL3TZAbpP6HkJzY6+3AFf2CPSakCrqh13YOWWfGYFX EN2AJiJKzsM/U= X-Received: by 2002:a05:600c:c0c8:b0:488:b749:8482 with SMTP id 5b1f17b1804b1-488d67bbc13mr268026475e9.4.1776342120400; Thu, 16 Apr 2026 05:22:00 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6b5627sm5559601c88.13.2026.04.16.05.21.58 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:21:59 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:24 -0300 Subject: [PATCH bpf-next v6 07/11] selftests/bpf: Skip tests whose objects were not built Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-7-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=4967; i=rbm@suse.com; h=from:subject:message-id; bh=hWJ8+H+Blfisu42DAY3lw1ddjSGc9cOuFP++V3VJBps=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QP1RYdFz4dIdJNgmyRKGDMQyYvBhRXBGYf5XMChZjsKK0nzxfC2HPOlU95uliz2hlrVjX5dMdkJ j4pdbbdEThAw= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g When both run_test and run_serial_test are NULL (because the corresponding .test.o was not compiled), mark the test as not built instead of fatally aborting. Report these tests as "SKIP (not built)" in per-test output and include them in the skip count so they remain visible in CI results and JSON output. The summary line shows the not-built count when nonzero: Summary: 50/55 PASSED, 5 SKIPPED (3 not built), 0 FAILED Tests filtered out by -t/-n remain invisible as before; only genuinely unbuilt tests are surfaced. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/test_progs.c | 50 +++++++++++++++++++++++++++-= ---- tools/testing/selftests/bpf/test_progs.h | 1 + 2 files changed, 44 insertions(+), 7 deletions(-) diff --git a/tools/testing/selftests/bpf/test_progs.c b/tools/testing/selft= ests/bpf/test_progs.c index 7fe16b5131b1..f04a579ecd4d 100644 --- a/tools/testing/selftests/bpf/test_progs.c +++ b/tools/testing/selftests/bpf/test_progs.c @@ -165,6 +165,8 @@ struct prog_test_def { void (*run_test)(void); void (*run_serial_test)(void); bool should_run; + bool not_built; + bool selected; bool need_cgroup_cleanup; bool should_tmon; }; @@ -372,6 +374,8 @@ static void print_test_result(const struct prog_test_de= f *test, const struct tes fprintf(env.stdout_saved, "#%-*d %s:", TEST_NUM_WIDTH, test->test_num, te= st->test_name); if (test_state->error_cnt) fprintf(env.stdout_saved, "FAIL"); + else if (test->not_built) + fprintf(env.stdout_saved, "SKIP (not built)"); else if (!skipped_cnt) fprintf(env.stdout_saved, "OK"); else if (skipped_cnt =3D=3D subtests_cnt || !subtests_cnt) @@ -1700,8 +1704,13 @@ static void calculate_summary_and_print_errors(struc= t test_env *env) if (env->json) fclose(env->json); =20 - printf("Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n", - succ_cnt, sub_succ_cnt, skip_cnt, fail_cnt); + if (env->not_built_cnt) + printf("Summary: %d/%d PASSED, %d SKIPPED (%d not built), %d FAILED\n", + succ_cnt, sub_succ_cnt, skip_cnt, env->not_built_cnt, + fail_cnt); + else + printf("Summary: %d/%d PASSED, %d SKIPPED, %d FAILED\n", + succ_cnt, sub_succ_cnt, skip_cnt, fail_cnt); =20 env->succ_cnt =3D succ_cnt; env->sub_succ_cnt =3D sub_succ_cnt; @@ -1772,6 +1781,19 @@ static void server_main(void) run_one_test(i); } =20 + /* mark not-built tests as skipped */ + for (int i =3D 0; i < prog_test_cnt; i++) { + struct prog_test_def *test =3D &prog_test_defs[i]; + struct test_state *state =3D &test_states[i]; + + if (test->not_built && test->selected) { + state->tested =3D true; + state->skip_cnt =3D 1; + env.not_built_cnt++; + print_test_result(test, state); + } + } + /* generate summary */ fflush(stderr); fflush(stdout); @@ -2046,15 +2068,20 @@ int main(int argc, char **argv) struct prog_test_def *test =3D &prog_test_defs[i]; =20 test->test_num =3D i + 1; - test->should_run =3D should_run(&env.test_selector, - test->test_num, test->test_name); + test->selected =3D should_run(&env.test_selector, + test->test_num, test->test_name); + test->should_run =3D test->selected; =20 - if ((test->run_test =3D=3D NULL && test->run_serial_test =3D=3D NULL) || - (test->run_test !=3D NULL && test->run_serial_test !=3D NULL)) { + if (test->run_test && test->run_serial_test) { fprintf(stderr, "Test %d:%s must have either test_%s() or serial_test_%= sl() defined.\n", test->test_num, test->test_name, test->test_name, test->test_name); exit(EXIT_ERR_SETUP_INFRA); } + if (!test->run_test && !test->run_serial_test) { + test->not_built =3D true; + test->should_run =3D false; + continue; + } if (test->should_run) test->should_tmon =3D should_tmon(&env.tmon_selector, test->test_name); } @@ -2106,9 +2133,18 @@ int main(int argc, char **argv) =20 for (i =3D 0; i < prog_test_cnt; i++) { struct prog_test_def *test =3D &prog_test_defs[i]; + struct test_state *state =3D &test_states[i]; =20 - if (!test->should_run) + if (!test->should_run) { + if (test->not_built && test->selected && + !env.get_test_cnt && !env.list_test_names) { + state->tested =3D true; + state->skip_cnt =3D 1; + env.not_built_cnt++; + print_test_result(test, state); + } continue; + } =20 if (env.get_test_cnt) { env.succ_cnt++; diff --git a/tools/testing/selftests/bpf/test_progs.h b/tools/testing/selft= ests/bpf/test_progs.h index 1a44467f4310..6ee10360e314 100644 --- a/tools/testing/selftests/bpf/test_progs.h +++ b/tools/testing/selftests/bpf/test_progs.h @@ -125,6 +125,7 @@ struct test_env { int sub_succ_cnt; /* successful sub-tests */ int fail_cnt; /* total failed tests + sub-tests */ int skip_cnt; /* skipped tests */ + int not_built_cnt; /* tests not built */ =20 int saved_netns_fd; int workers; /* number of worker process */ --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f53.google.com (mail-wm1-f53.google.com [209.85.128.53]) (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 BDD0C3B9DAC for ; Thu, 16 Apr 2026 12:22:05 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.53 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342128; cv=none; b=NTWqh1mBTV9nZKusc8mVUXCqEVV9cZllIYhBVRxXgXqh+l1BnIp1Fgp033WlN+1fnSCwCsC3sXlt1AR/wVSX+VakqTNurXTcqVgeCS/vcgVR+PeewA9NHqhuQb35BHXgVTrGTmVeMup+YhLeu+4jp+ro1LBVVszBSlpAnOKWFz8= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342128; c=relaxed/simple; bh=+YBja3AAyMuyPOK7hY8a4GWFTYXYPSBMUIrp92cTH/A=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=tAk9D/E7oZGlRF4bf/k0MZnZSCy60fScN2MsHSVdywA7zn1gqX0kJSik9lQEOPGE6Fj8qTvzOfhZDRm9LpWPVnbJvkAdyk9CvpUPYJxOx8Pupy7PelVnVOKqqEvAEMcIrsDJZb8wj0O6hj7W7kF8duhd3Gt3GIvfD1qK0YnboLA= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=D+ULfnEV; arc=none smtp.client-ip=209.85.128.53 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="D+ULfnEV" Received: by mail-wm1-f53.google.com with SMTP id 5b1f17b1804b1-488a29e6110so83474015e9.3 for ; Thu, 16 Apr 2026 05:22:05 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342124; x=1776946924; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=SvrCOjn7+Dc7pEGNMqsF8NC6gFHe3KAEuMAKz+F5t7U=; b=D+ULfnEV1CStbBURrGak8ju4SBJkwSwwZGXDBwKDCqChiV8pUGQ0vKN2SMAejuwal4 m6XmWp229lv/ysZ5PbLfhqiVmUrP03vsqzlZeiRZOwinqWSD0rHtLSbkwfiy0AolzO7Y FlsJswOrJJ344GmAzAplC3exPD+L8neDVI+AXfBESA3xuLe36QA0ivcsyy2/Liahgm8U yTMs2ajmjXiqdaUAINoOZ5kNgvYZ7jlHxa33GrPF3Rup7V1NOJjLMzwQItW0YBOSpiga CwpLy5J5dOIUEXKnFNJm27oOCswCvTZxypJ2b6oBYgZeTM4pyowaSicO3hlan77wC+em oAuQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342124; x=1776946924; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=SvrCOjn7+Dc7pEGNMqsF8NC6gFHe3KAEuMAKz+F5t7U=; b=UK8zd8ym6OeIGErW2pyhGYGyzXBZV0QGPCR16IQOSC05yHGfxSYIJ7QSFGHZX8cTIP 2lQqoJrJkUe4fkXU/f4qwj5DTpTBUhpRZbXbXeoIzusYBSH/qvlvWpJ3OSa5eFf0/6c3 1gPQu2X9/aK8h8akrOCrI5KTGjl//V1rE+BShxW+dIXd/jtSMCT+qAkOuCNKMws0XImU bEtSrDZ1MweUL1M4RrQ0u9jPmEtDxlEEhATyAa7GgTgYFWgk0Jp7w2O5IqBCYWT6ViUQ CAuZRP/KnSzZtbq/0YRLrSs8qqugcBwbe7ZopY7Cj27bvBU8JjNv6wKYISOya6SvgCXJ 5htA== X-Forwarded-Encrypted: i=1; AFNElJ85yHO2DfnUBFCNig4K0/6sIHFnshnPYQ0VFAcj0eMFtBYmq1lwiVwMuVfakP+BsBvyDXF0EBWFB7hfwZI=@vger.kernel.org X-Gm-Message-State: AOJu0Yw7TLdUplhyeA3t6UDeIy37Q89I1AL7IXqkauF6+onoXDiL29sD Ms/1v0yF/TgkJ2Dp2KYLxsGoOVFBn31MF4hXQk/2ALW2fOz40pyJiQlc3El+6CgzBLo= X-Gm-Gg: AeBDieu/A8Kw5wQQXKyL3uJo49DVt0OJutAhAo5TFgF29bLRfmd1isjG+NowMp2QQCH 95nwG7w9r0tPRsk+ggKU9Fdb27uf4TcvmI8w9A1ALFgwNdjsnl1jurdiJRpmrwL8YbVOUUl60kV 2iHeocdP2s1/NreN7Uv/6w+J9l+IK3Kg+xnuoJnYs7JC8TO+KviboW6EiEqE2lwTauR9v+lZCam MKdESwOG69JhKo8axJLM7xuCiV6A7vnsN1HpXxz8jAu9UVRDu0pnt10ccx9pBlazpUt8I2WhNYx 5vJg78dksyedhxCcs1ipWfy9c9OmpRevqjfZvEwXYvWz38dFMfaRSamJpGzrV9Mcvq2N34qkCDe 3yGEZBbFSHd2WSBF62Uv6YCap+dguHtdUdRmPESq+lr8I9WLkEgnHT26aLBbcuU+JRs4xZVkZ1Y ZEYYS35SuPA4Y= X-Received: by 2002:a05:600d:4:b0:480:69b6:dfed with SMTP id 5b1f17b1804b1-488d68ab2bfmr295279095e9.24.1776342124135; Thu, 16 Apr 2026 05:22:04 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8eb84673sm7164252eec.19.2026.04.16.05.22.02 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:22:03 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:25 -0300 Subject: [PATCH bpf-next v6 08/11] selftests/bpf: Allow test_progs to link with a partial object set Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-8-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=2177; i=rbm@suse.com; h=from:subject:message-id; bh=+YBja3AAyMuyPOK7hY8a4GWFTYXYPSBMUIrp92cTH/A=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QCjJr7qrZTvsZeXw66sAmgEJNp6GdcrYlWF3NbAxILcL6xQzFchcMR6yXSO6q6ybEvNTrrLSd05 jOLUJE3UtxA8= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g When individual test files are skipped due to compilation failures, their .test.o files are absent. The linker step currently lists all expected .test.o files as explicit prerequisites, so make considers any missing one an error. Move TRUNNER_TEST_OBJS to the order-only prerequisite list so that their absence does not prevent linking. Use $(wildcard ...) in the filter expression passed to the linker so that only the objects that were actually built are linked in. Place the wildcard expansion before $^ in the filter to preserve the original link order: test objects must precede libbpf.a so that GNU ld, which scans static archives left-to-right, pulls in archive members that are referenced exclusively by test objects (e.g. ring_buffer__new from ringbuf.c). Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 5ad50d3ff2f8..79991dc98ddd 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -758,14 +758,15 @@ endif # some X.test.o files have runtime dependencies on Y.bpf.o files $(OUTPUT)/$(TRUNNER_BINARY): | $(TRUNNER_BPF_OBJS) =20 -$(OUTPUT)/$(TRUNNER_BINARY): $(TRUNNER_TEST_OBJS) \ +$(OUTPUT)/$(TRUNNER_BINARY): $(if $(PERMISSIVE),,$(TRUNNER_TEST_OBJS)) \ $(TRUNNER_EXTRA_OBJS) $$(BPFOBJ) \ $(TRUNNER_LIB_OBJS) \ $(TRUNNER_BPFTOOL) \ $(OUTPUT)/veristat \ - | $(TRUNNER_BINARY)-extras + | $(TRUNNER_BINARY)-extras \ + $(if $(PERMISSIVE),$(TRUNNER_TEST_OBJS)) $$(call msg,BINARY,,$$@) - $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$$^) $$(LDLIBS) $$(LLVM_LDLIBS) $= $(LDFLAGS) $$(LLVM_LDFLAGS) -o $$@ + $(Q)$$(CC) $$(CFLAGS) $$(filter %.a %.o,$(if $(PERMISSIVE),$$(wildcard $(= TRUNNER_TEST_OBJS)),$(TRUNNER_TEST_OBJS)) $$^) $$(LDLIBS) $$(LLVM_LDLIBS) $= $(LDFLAGS) $$(LLVM_LDFLAGS) -o $$@ $(Q)ln -sf $(if $2,..,.)/tools/build/bpftool/$(USE_BOOTSTRAP)bpftool \ $(OUTPUT)/$(if $2,$2/)bpftool =20 --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f45.google.com (mail-wm1-f45.google.com [209.85.128.45]) (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 5C75C3B895F for ; Thu, 16 Apr 2026 12:22:09 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.45 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342130; cv=none; b=nOt3/kSm6dMSxRiSaUmF6BAqoPUb9Op9Md5ZpPAT8eN0DrJQYnf6EQN83cx0JkgRkFsHoXfO1EGhIVNNQl/qJjxyrQGTvNPTrfuW6AZzGep+3HjzjZrtHOxGFIxzqALWCIgrjMnEe7j0WWV3jYsKmgArCt+OZqJE+3Z7jhWvSLU= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342130; c=relaxed/simple; bh=oQ0Flhcav2dCZkm26xLB8SFWrrDDjyjtQCHU087O1gY=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=jFo7VjdqQWfW24M2DPhMOcouW72XpXx0oPXmx7/13EQvGzC/e0qtRcdA/bmca7++SuSg+zAfPbZ0wovdhj0zyDK5J3h23jZvltuA986/lKWCtWoF8hV1//UGDJz/GUX5eYepdvqx3HYYAnQGxrXkLkwnT4wjDFWrdTKHHqCSMZE= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=U1kD0HBn; arc=none smtp.client-ip=209.85.128.45 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="U1kD0HBn" Received: by mail-wm1-f45.google.com with SMTP id 5b1f17b1804b1-488a29e6110so83474795e9.3 for ; Thu, 16 Apr 2026 05:22:09 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342128; x=1776946928; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=6EEdDDWfB1ZZ/NmsE/xkRqHhbnFjt08q4lL8Y16J7M4=; b=U1kD0HBnwNXTd2ILBet958Ae/VGeqJBmZj5j+2vZeEY1CiJ9MBhozCkYkz93meCyeu rkFPkTiHoSeb1oEXa98cF+PEjK7rKQ6DqUZ8DJzmFOxCmcQs/gp2lxq5xMfB2/cq5YHD kes3pxxYDOYMYMckik2xmO/rNeXwRnGErG/xyMSFxeq9ocwfzlTWjRSP0YdSUKfvsvGy o8T7J+oH7fwXeWzjc1nDtAYllj2Nu5cwnvm5iRn+jZB8FAv7D+XCEx1JnAl34fJ7g14z V6x6rZU5dkRDOoovTXiIYfEa0vfIUOkDdFs41DMGxG8/iMZx1qDnRTVKaytq1Xe0ZiAW r6ig== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342128; x=1776946928; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=6EEdDDWfB1ZZ/NmsE/xkRqHhbnFjt08q4lL8Y16J7M4=; b=MP8l4CsJMSWMVuGy47OSAPaRzMz8ww9OngmQ9zFhkLAfOqpIcE8B+KgBx0ilfXgUvf G4V3beog2EbzmPBxKxW9Fmv3UoyYoSe11JWsQsMqkgGRUvrp7022/Fjlt81iCPr6Nw+/ oRNi9ddPGEe+RueDnfI3iDpGimqne4weNCZxNtwNF30d8hZotRHSKhtBFFZ+dghqGOxj DGQUF8/R9g4Q5x+exyNRceFsuo11uRsae1AM+DCYgIMJ7HYxDCGaIUg/sgr+k86jP/Vq WqS6HtEHW/bg+mAMoRnCJlCpqwBWzFoNvmnfHn1WVYISiFv4cc3MNvIWodR4e4nOno43 cYMw== X-Forwarded-Encrypted: i=1; AFNElJ+OnDANgg+SuHRB1HzMQ68ic1PLGNiMPaWgLZzJY2is/YrUBHsFvhZqznWnGz1lIt/egzmdI/LbjXnCDxY=@vger.kernel.org X-Gm-Message-State: AOJu0YyeCShzzCxJKfUwj+8JFqyOdL8SPRGD5pEh1l51toRZtd1oT1Ct a+GpkNSVKh2FER/uU+yJHrWJEn4pCIgJ9H0kSTukbkBTlRrICGVORofu9AsdsKgZkZI= X-Gm-Gg: AeBDietxzdkx43GySGK9XEHeUeX6ZEWliD63hZHw5+bAeGYSxoXHYJksThrgjm6GCW1 yoytRAWyRVLxgk5+eCUK+izoZCkEMCxQHu5NI3aAtWRhKUwxHp4sXQgqLC4Gg53Cf/u4TFkWyMS wnDDnvas7cujGeCl3orjBEejRnsyprno4WVxorYy14gutphc4LRxjlXRIoZBENqeZWtbYeHj1o9 cYV3vhe8iiDMk13+uR5P2QO/0OuuIMc6SznF1xFgrwb7z/5PQROD9n19GE1lj95vOMtLefRCoX9 tvFRMZzEmqCUKYs4TE4tiFqZvb6tMaAQH6XVOw8JXEtPoSZTqV4zY/ADeKzyUv3fIAgNFE+vtBe ID6DvwibcdnlrcpJGIthDZuoaPOOtIjdMbswDBWx0H7qMejF1WMF+iXjZRbJX3Uc8MiVSVmtgJ+ XCPgH23xHHmTQ= X-Received: by 2002:a05:600c:c0da:b0:488:b043:5efd with SMTP id 5b1f17b1804b1-488d682628dmr311205855e9.13.1776342127847; Thu, 16 Apr 2026 05:22:07 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id a92af1059eb24-12c5e6b6a05sm6438257c88.14.2026.04.16.05.22.06 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:22:06 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:26 -0300 Subject: [PATCH bpf-next v6 09/11] selftests/bpf: Tolerate benchmark build failures Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-9-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=2217; i=rbm@suse.com; h=from:subject:message-id; bh=oQ0Flhcav2dCZkm26xLB8SFWrrDDjyjtQCHU087O1gY=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QAQh8rHa14rUl8QAExAeTdNkUq+kn+3xXOq28lt+IwmB78MBk/5dae80B6Z0oOTEG0t5I+rY3Mc kb/G+tEnwuAA= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Benchmark objects depend on skeletons that may be missing when some BPF programs fail to build. In that case, benchmark object compilation or final bench linking should not abort the full selftests/bpf build. Keep both steps non-fatal, emit SKIP-BENCH or SKIP-LINK, and remove failed outputs so stale objects or binaries are not reused by later incremental builds. Note that because bench.c statically references every benchmark via extern symbols, partial linking is not possible: if any single benchmark object fails, the entire bench binary is skipped. This is by design -- the error handler catches all compilation failures including genuine ones, but those are caught by full-config CI runs. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 79991dc98ddd..9e3e0a898e40 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -896,7 +896,8 @@ $(OUTPUT)/test_cpp: test_cpp.cpp $(OUTPUT)/test_core_ex= tern.skel.h $(BPFOBJ) # Benchmark runner $(OUTPUT)/bench_%.o: benchs/bench_%.c bench.h $(BPFOBJ) $(call msg,CC,,$@) - $(Q)$(CC) $(CFLAGS) -O2 -c $(filter %.c,$^) $(LDLIBS) -o $@ + $(Q)$(CC) $(CFLAGS) -O2 -c $(filter %.c,$^) $(LDLIBS) -o $@ $(if $(PERMIS= SIVE),|| \ + ($(RM) $@; printf ' %-12s %s\n' 'SKIP-BENCH' '$(notdir $@)' 1>&2)) $(OUTPUT)/bench_rename.o: $(OUTPUT)/test_overhead.skel.h $(OUTPUT)/bench_trigger.o: $(OUTPUT)/trigger_bench.skel.h $(OUTPUT)/bench_ringbufs.o: $(OUTPUT)/ringbuf_bench.skel.h \ @@ -939,7 +940,8 @@ $(OUTPUT)/bench: $(OUTPUT)/bench.o \ $(OUTPUT)/usdt_2.o \ # $(call msg,BINARY,,$@) - $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(filter %.a %.o,$^) $(LDLIBS) -o $@ + $(Q)$(CC) $(CFLAGS) $(LDFLAGS) $(filter %.a %.o,$(if $(PERMISSIVE),$(wild= card $^),$^)) $(LDLIBS) -o $@ $(if $(PERMISSIVE),|| \ + ($(RM) $@; printf ' %-12s %s\n' 'SKIP-LINK' '$(notdir $@) (some benchma= rks may have been skipped)' 1>&2)) =20 # This works around GCC warning about snprintf truncating strings like: # --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f41.google.com (mail-wm1-f41.google.com [209.85.128.41]) (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 192CD3BB9E0 for ; Thu, 16 Apr 2026 12:22:13 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.41 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342134; cv=none; b=M/6IpsH7P1vQNaoVvBV1xtLYxvnUYSRKTQl3nxt+HuBRyCDyXTTHTEkaoRQ5KlWZoLcQsc0cxSLJHTHtXqNCgRiRuH5tjhwqk8G9wm+RwDz6jkrhJeKx6p0MoRHoEedc7oe/IkJcKluzrpFWVxc8uVQhYjgnSbc0yGbReQ+9Kx0= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342134; c=relaxed/simple; bh=ku5U3Ka0ndjPXP92siQHnGkpd1bCq2hgtWQ4GejuUdw=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=RFSf+/GK9gFBR6DHpI25CqOMXMgM2Co5UJAJUV/1TeuildlazuhNJBK5gATHtjCtkeUy9pFLNhzYJhuBLFIIvhpeACo4+JdEF0DQZHxXnhvFsnFcfO9gMQIRNsVYsAFqwY7oQofiWWyUg2XBXIDiXj5XfZXyzGouHEYr9TiDwIk= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=JcAWIne0; arc=none smtp.client-ip=209.85.128.41 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="JcAWIne0" Received: by mail-wm1-f41.google.com with SMTP id 5b1f17b1804b1-488afb0427eso93582365e9.1 for ; Thu, 16 Apr 2026 05:22:12 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342131; x=1776946931; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=Oynt2x6SXKNaRU8MrrgQe7iSYgm0Zd6fxbgaEr/IL1k=; b=JcAWIne0kU6feEsIZ0b7rhmXVoHGtaxG6QuZyqp3RxBVBhcqz18S2ZbJpT6j++nhBO aQq7xEG/kGAS5MIeqRzF9e7gb71bUaWTYAscF8WhwDpNCJ4NQRQjXb8jgfcPzHW0jbJz 8vDS41qQO5gMiBdISccatwIwF550rx1zPSvgmFNZyl92HRKhH0UjAn/ndZ2pumIHNrBc 4+VKJcUlqmb1XLLAzCsYb+RdgXik/vptTL3uWvL0RxU6w7NCI90qFn8O0ESc+Eq5TEhg 1hoKv1OmuRogEjXg5rwYABTVL7PatCqN3oZDYCvbPRqI+kieuLP+4cD3UqaoZAOcPmpn z0oQ== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342131; x=1776946931; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=Oynt2x6SXKNaRU8MrrgQe7iSYgm0Zd6fxbgaEr/IL1k=; b=pWYVNxKV4X2YC2Onfrk6X6BlhGruuRPoKMhij7diqDnF5qD0TT+gEvEs4yPOqUF5fY nnz7O5yPd8BFoa0Xrue9ssTsfrDmTbrtPcd459aGSIpS0vTJQiO3JXD/CKVWq+szEsN0 PZqFqex0y3ALW9ouw3QFZD0wZk0ooiTEbVp0ByPrRqBEjaVsBfYibEdxhsau00zO7XqG LTbSMk1nY7kaCcHJzyy/rRWvoLNE+WWodfjxxtJHKqLSz4HYDlSB1iCMqG4ke4TaKhYl RHeycTg4qQ+4tORDcUzb7f2wBNrVCNsyksKhKQNlcHKAe/S4QAmJKsdma4+qjS9aNDAN VEaA== X-Forwarded-Encrypted: i=1; AFNElJ9hHm/N/Ax36YMTtrGEid48oeWZLiHBsJWNmw03+WcRIWgeZFha8DXc5HZuPrGycmCwbokzKUghP62Ej7k=@vger.kernel.org X-Gm-Message-State: AOJu0YxQZyYxPgkAgEiznIscywJ2kdGF4Q/aTr6VXNW6udWxT6q0/F3q Oi+38qt/mlq6/8J+TEn76ofOqd1xBq66rLhbZnpzGMSNoxl0RY5mnR69kD0io3p9tpc= X-Gm-Gg: AeBDieu1ApVJ6Q+NsRR2r11KEK8tm24iXoOkVgo+ZRMVtcP32VBEZMWQzaKJglTY76e gEdXwsNvTR0UqOLY2u57D+eUmsm1/cgA7S5TPT2gcU0XmrluhxWbo8MWxL/P8Y3uqcj/cIKNRcH ZnkV4MGNC4M0KQ7B9HkUjxKgUS51VcDkJDiRLxvsXXJljKtkGQz61O97KhjaieaD38mJztijSlB z88MeVo4o/iOhnIxfhwThEaGZwwaAgLFXGWpLjxUF0AopeWeuL1UV29or+7LyIr3DrzS5RxIKRR KbZfQgDBl2/tDB1G82LVNtT3u9fFFSx9V86dFANjl3bGCxhyfjR/FtFpbvQjW67GikK9AgMhq1x hAoDlsvbnWMnW3EGQTMlnA/dqg5BVjcclhS0t6yj62D384FLSCnSpH3APjW4KKdJRF/SeWcmn0T WBTrDrA8HIfxc= X-Received: by 2002:a05:600d:1:b0:488:a2ac:a334 with SMTP id 5b1f17b1804b1-488d67c720emr320597815e9.3.1776342131415; Thu, 16 Apr 2026 05:22:11 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c606db2sm6897614eec.11.2026.04.16.05.22.09 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:22:10 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:27 -0300 Subject: [PATCH bpf-next v6 10/11] selftests/bpf: Provide weak definitions for cross-test functions Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-10-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=5376; i=rbm@suse.com; h=from:subject:message-id; bh=ku5U3Ka0ndjPXP92siQHnGkpd1bCq2hgtWQ4GejuUdw=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QADQi3LbxVO70sLafTtzZ1OnYs3sI4Q1YFUFVnjYDmm2m3UqMyE9AKo9DgDBEEFgFn2aMcsIuHC qKzGtpkOGWAc= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g Some test files reference functions defined in other translation units that may not be compiled when skeletons are missing. Replace forward declarations of uprobe_multi_func_{1,2,3}() with weak no-op stubs so the linker resolves them regardless of which objects are present. Move stack_mprotect() from test_lsm.c into testing_helpers.c so it is always available. The previous weak-stub approach returned 0, which would cause callers expecting -1/EPERM to fail their assertions deterministically. Having the real implementation in a shared utility avoids this problem entirely. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- .../testing/selftests/bpf/prog_tests/bpf_cookie.c | 17 +++++++++++------ tools/testing/selftests/bpf/prog_tests/iters.c | 3 +-- tools/testing/selftests/bpf/prog_tests/test_lsm.c | 22 ------------------= ---- tools/testing/selftests/bpf/testing_helpers.c | 17 +++++++++++++++++ tools/testing/selftests/bpf/testing_helpers.h | 1 + 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c b/tools/te= sting/selftests/bpf/prog_tests/bpf_cookie.c index 35adc3f6d443..5a864cd8ad1b 100644 --- a/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c +++ b/tools/testing/selftests/bpf/prog_tests/bpf_cookie.c @@ -252,10 +252,17 @@ static void kprobe_multi_attach_api_subtest(void) kprobe_multi__destroy(skel); } =20 -/* defined in prog_tests/uprobe_multi_test.c */ -void uprobe_multi_func_1(void); -void uprobe_multi_func_2(void); -void uprobe_multi_func_3(void); +/* + * Weak uprobe target stubs. noinline is required because + * uprobe_multi_test_run() takes their addresses to configure the BPF + * program's attachment points; an inlined function has no stable + * address in the binary to probe. The strong definitions in + * uprobe_multi_test.c take precedence when that translation unit is + * linked. + */ +noinline __weak void uprobe_multi_func_1(void) {} +noinline __weak void uprobe_multi_func_2(void) {} +noinline __weak void uprobe_multi_func_3(void) {} =20 static void uprobe_multi_test_run(struct uprobe_multi *skel) { @@ -574,8 +581,6 @@ static void tracing_subtest(struct test_bpf_cookie *ske= l) close(fmod_ret_fd); } =20 -int stack_mprotect(void); - static void lsm_subtest(struct test_bpf_cookie *skel) { __u64 cookie; diff --git a/tools/testing/selftests/bpf/prog_tests/iters.c b/tools/testing= /selftests/bpf/prog_tests/iters.c index a539980a2fbe..7c0b59fdf498 100644 --- a/tools/testing/selftests/bpf/prog_tests/iters.c +++ b/tools/testing/selftests/bpf/prog_tests/iters.c @@ -7,6 +7,7 @@ #include #include #include +#include #include #include "cgroup_helpers.h" =20 @@ -202,8 +203,6 @@ static void subtest_task_iters(void) iters_task__destroy(skel); } =20 -extern int stack_mprotect(void); - static void subtest_css_task_iters(void) { struct iters_css_task *skel =3D NULL; diff --git a/tools/testing/selftests/bpf/prog_tests/test_lsm.c b/tools/test= ing/selftests/bpf/prog_tests/test_lsm.c index bdc4fc06bc5a..d7495efd4a56 100644 --- a/tools/testing/selftests/bpf/prog_tests/test_lsm.c +++ b/tools/testing/selftests/bpf/prog_tests/test_lsm.c @@ -5,36 +5,14 @@ */ =20 #include -#include #include #include -#include -#include =20 #include "lsm.skel.h" #include "lsm_tailcall.skel.h" =20 char *CMD_ARGS[] =3D {"true", NULL}; =20 -#define GET_PAGE_ADDR(ADDR, PAGE_SIZE) \ - (char *)(((unsigned long) (ADDR + PAGE_SIZE)) & ~(PAGE_SIZE-1)) - -int stack_mprotect(void) -{ - void *buf; - long sz; - int ret; - - sz =3D sysconf(_SC_PAGESIZE); - if (sz < 0) - return sz; - - buf =3D alloca(sz * 3); - ret =3D mprotect(GET_PAGE_ADDR(buf, sz), sz, - PROT_READ | PROT_WRITE | PROT_EXEC); - return ret; -} - int exec_cmd(int *monitored_pid) { int child_pid, child_status; diff --git a/tools/testing/selftests/bpf/testing_helpers.c b/tools/testing/= selftests/bpf/testing_helpers.c index 6fbe1e995660..3f7ae76c209b 100644 --- a/tools/testing/selftests/bpf/testing_helpers.c +++ b/tools/testing/selftests/bpf/testing_helpers.c @@ -5,6 +5,7 @@ #include #include #include +#include #include #include #include "disasm.h" @@ -516,3 +517,19 @@ bool is_jit_enabled(void) =20 return enabled; } + +int stack_mprotect(void) +{ + void *buf; + long sz; + int ret; + + sz =3D sysconf(_SC_PAGESIZE); + if (sz < 0) + return sz; + + buf =3D alloca(sz * 3); + ret =3D mprotect((void *)(((unsigned long)(buf + sz)) & ~(sz - 1)), sz, + PROT_READ | PROT_WRITE | PROT_EXEC); + return ret; +} diff --git a/tools/testing/selftests/bpf/testing_helpers.h b/tools/testing/= selftests/bpf/testing_helpers.h index 2ca2356a0b58..2edc6fb7fc52 100644 --- a/tools/testing/selftests/bpf/testing_helpers.h +++ b/tools/testing/selftests/bpf/testing_helpers.h @@ -59,5 +59,6 @@ struct bpf_insn; int get_xlated_program(int fd_prog, struct bpf_insn **buf, __u32 *cnt); int testing_prog_flags(void); bool is_jit_enabled(void); +int stack_mprotect(void); =20 #endif /* __TESTING_HELPERS_H */ --=20 2.53.0 From nobody Tue Jun 16 05:18:37 2026 Received: from mail-wm1-f52.google.com (mail-wm1-f52.google.com [209.85.128.52]) (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 CB8FE3B777B for ; Thu, 16 Apr 2026 12:22:16 +0000 (UTC) Authentication-Results: smtp.subspace.kernel.org; arc=none smtp.client-ip=209.85.128.52 ARC-Seal: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342138; cv=none; b=DDFLi3RnbhipfOSqHn6I3LQuTIjU8CDASnvewMxCw9+RgpxUISRS+ez/8VnFjOLqFI58wqCIv2XlWPuYUK5pIzwLfb8jCOolDQzsmjriZjq4WzL9zd18V8I0BpNqrjWYlIKvcJgNLPZdwJormeHG/25VN6/05fpZ1kby5Qa8kdo= ARC-Message-Signature: i=1; a=rsa-sha256; d=subspace.kernel.org; s=arc-20240116; t=1776342138; c=relaxed/simple; bh=mEg+v7zXI0iREsRG6kydyUfkdkpuhC25e846u65Lppk=; h=From:Date:Subject:MIME-Version:Content-Type:Message-Id:References: In-Reply-To:To:Cc; b=cMdEv9TyQ0k3QoPnpyeuN8ZN30sVhmdklkfxuBM61u3ft/0v1y2BDZzuS9n1VPWzL0ECKB8KrBxHwbVWIk87Ru10DVtx3n6krRK1txsc7QujZdIV55Zu+PZbZ2LVOBLg9LxJqK4aM69wXH6ROcwkfkO4M89v05CjZrJ1q7BhDGQ= ARC-Authentication-Results: i=1; smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com; spf=pass smtp.mailfrom=suse.com; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b=TNVZSiU0; arc=none smtp.client-ip=209.85.128.52 Authentication-Results: smtp.subspace.kernel.org; dmarc=pass (p=quarantine dis=none) header.from=suse.com Authentication-Results: smtp.subspace.kernel.org; spf=pass smtp.mailfrom=suse.com Authentication-Results: smtp.subspace.kernel.org; dkim=pass (2048-bit key) header.d=suse.com header.i=@suse.com header.b="TNVZSiU0" Received: by mail-wm1-f52.google.com with SMTP id 5b1f17b1804b1-488b8efed61so6658405e9.1 for ; Thu, 16 Apr 2026 05:22:16 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=suse.com; s=google; t=1776342135; x=1776946935; darn=vger.kernel.org; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:from:to:cc:subject:date:message-id :reply-to; bh=KhHX7gYP2RMHcZsNzdTs8ia86Fe1heXnXQrH+zN2ESQ=; b=TNVZSiU0H5gK2CL/L/zsF9L1ePdd/Qt+IZ8EtOP8RZ6NM3pAUGgG7Tn5vAuZ5zHgQ4 cQOgx23pH8NE9obrM8PZbWIjrv372KMOWyer9Oh/64kCi+4RJ3UshCa7J6RB50xnDobY LpVf9Rqdj3OWS9wH5gyaCfvV8yPtLvtMO0pJ2f1IzHLKho2zfZBwdVw00dRYgLid8OSK d2qw0COdIW1e0T/PTH2b6dRlPnrevOs0Xxwd/aG/puff/YP2tTPdBNZ9bTvGhP/Kx/Kv 5FRMgvRpoZNvSRjSqFRIlPEPHn+g9jBzP0ePwKwGMfIin7tY66RoCuBYJRuNnIuw1qbD I2hw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20251104; t=1776342135; x=1776946935; h=cc:to:in-reply-to:references:message-id:content-transfer-encoding :mime-version:subject:date:from:x-gm-gg:x-gm-message-state:from:to :cc:subject:date:message-id:reply-to; bh=KhHX7gYP2RMHcZsNzdTs8ia86Fe1heXnXQrH+zN2ESQ=; b=MW3TGUDMdskKWn+1+tSE0RqVjZe09sZOz5FWmTYeFX9Dn8Er37XpIL/sn78A/MMLAO k0kJsWLAbg4/H5Klr6It9u7De9f5pzBfxafcUDbbbTwV5knpgIzRyPTfXC9MJ+NCy2B/ KbsEWjAGUZ7iSokxmNe9uEGpgeRCz2HnBT4R4PToetuojhfjVmoEiWpd+nNELwQqDncA BTaM8OYBKRMagPcX+oJz0hfgp/OX0AO962ltNGGwsjc3/UKkmAae3cwLPAt0ZFgG0Tty ucg4TmvxTB0csG8TtlN1vOf7YKTGzZ2Dgrg+We3veSaAM5mVYd9ElZKEfD3uun8ve8R3 /u/Q== X-Forwarded-Encrypted: i=1; AFNElJ+A44InCAue49cyash+ydEp5uRSrZ5ZOMM/L8PRhQmHi4OjgU4ZLq5jGJDKNxLVx0CYQhH6DodUelzZvd0=@vger.kernel.org X-Gm-Message-State: AOJu0Yy2f9vahnMwXljpFEsJWAn98yFTJc5vj5qgw1k6Xus8CiE+pRl1 +BATnLbtt4Rp8na6qpjW8oXxiRp/qgwyUmJywN7YOHE+0E4MK894dEGKDyOLArpb+K0= X-Gm-Gg: AeBDies57NyvR65uqSSY8HVb1+W2F9gV5jXD84R+3FjCAF5EvrZN0Kiexd2dAARNT3J 5Y8/WbgS4VMZxFA049QtTxb1+nmjjm/lS1ZkEzVMF876hIt65pAINMUuwheK/pIfYN5lX9L5uJH ftg4d/K9+QebVXFwUKzYa1R9Tp9bRSS2LArUfx4ZW7itG444PMvPsAZqugN9q/vsUPjNxt/D8V0 yrkDgsYceZLp447xSieC7BGc5eSHsJuBHUIxK2Q56IDxWRF9guJ56/+7RXKK5iG+9hsk+R55fCP LUQUTrt/Y7HOhYW1bEtELqOOAUEWuiyp4ouTh+a8lkIhSTHAaa3OH0oM2PjYmhPD3aiECeHwVuo 6BS1BbhSJ2zPxRKWL35oK2G3MPy1BQjZs/RnTTLl6yZWoDJUetQf3ChaBaJCnqALeQil0562Wz4 aDfHG9Kl3z/Ok= X-Received: by 2002:a05:600c:5888:b0:488:a9c3:44a3 with SMTP id 5b1f17b1804b1-488f45c02abmr34600335e9.2.1776342135114; Thu, 16 Apr 2026 05:22:15 -0700 (PDT) Received: from localhost ([2804:7f0:b765:e41:ce28:aaff:fe86:149c]) by smtp.gmail.com with ESMTPSA id 5a478bee46e88-2de8c90cd7esm8736289eec.13.2026.04.16.05.22.13 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Thu, 16 Apr 2026 05:22:14 -0700 (PDT) From: =?utf-8?q?Ricardo_B=2E_Marli=C3=A8re?= Date: Thu, 16 Apr 2026 09:21:28 -0300 Subject: [PATCH bpf-next v6 11/11] selftests/bpf: Tolerate missing files during install Precedence: bulk X-Mailing-List: linux-kernel@vger.kernel.org List-Id: List-Subscribe: List-Unsubscribe: MIME-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: quoted-printable Message-Id: <20260416-selftests-bpf_misconfig-v6-11-7efeab504af1@suse.com> References: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> In-Reply-To: <20260416-selftests-bpf_misconfig-v6-0-7efeab504af1@suse.com> To: Andrii Nakryiko , Eduard Zingerman , Alexei Starovoitov , Daniel Borkmann , Martin KaFai Lau , Kumar Kartikeya Dwivedi , Song Liu , Yonghong Song , Jiri Olsa , Shuah Khan , Nathan Chancellor , Nick Desaulniers , Bill Wendling , Justin Stitt Cc: bpf@vger.kernel.org, linux-kselftest@vger.kernel.org, linux-kernel@vger.kernel.org, llvm@lists.linux.dev, Alan Maguire , "Ricardo B. Marliere" X-Mailer: b4 0.15.2 X-Developer-Signature: v=1; a=openssh-sha256; t=1776342088; l=2151; i=rbm@suse.com; h=from:subject:message-id; bh=mEg+v7zXI0iREsRG6kydyUfkdkpuhC25e846u65Lppk=; b=U1NIU0lHAAAAAQAAADMAAAALc3NoLWVkMjU1MTkAAAAgguRCc5X8/UX9M40lkMnr//aFGOhce x5ezt8MFNUFlqYAAAAGcGF0YXR0AAAAAAAAAAZzaGE1MTIAAABTAAAAC3NzaC1lZDI1NTE5AAAA QFN3SnWDFLPzFWsuaYADh4eBzRwT7G4DD1uJJxg8KDV+Al+f/kRjZMmp78ssLgAjQOV9rrCEpue zdCykIU669A8= X-Developer-Key: i=rbm@suse.com; a=openssh; fpr=SHA256:pzhe0fJpYLz+3cZ33FFPhIfaUElk9CXPFFXmalIH+1g With partial builds, some TEST_GEN_FILES entries can be absent at install time. rsync treats missing source arguments as fatal and aborts kselftest installation. Override INSTALL_SINGLE_RULE in selftests/bpf to use --ignore-missing-args, while keeping the existing bpf-specific INSTALL_RULE extension logic. Also add --ignore-missing-args to the TEST_INST_SUBDIRS rsync loop so that subdirectories with no .bpf.o files (e.g. when a test runner flavor was skipped) do not abort installation. Note that the INSTALL_SINGLE_RULE override applies globally to all file categories including static source files (TEST_PROGS, TEST_FILES). These are version-controlled and should always be present, so the practical risk is negligible. Signed-off-by: Ricardo B. Marli=C3=A8re Tested-by: Alan Maguire --- tools/testing/selftests/bpf/Makefile | 17 ++++++++++++++--- 1 file changed, 14 insertions(+), 3 deletions(-) diff --git a/tools/testing/selftests/bpf/Makefile b/tools/testing/selftests= /bpf/Makefile index 9e3e0a898e40..2808387b3d9f 100644 --- a/tools/testing/selftests/bpf/Makefile +++ b/tools/testing/selftests/bpf/Makefile @@ -974,11 +974,22 @@ EXTRA_CLEAN :=3D $(SCRATCH_DIR) $(HOST_SCRATCH_DIR) = \ # Delete partially updated (corrupted) files on error .DELETE_ON_ERROR: =20 +# When permissive, tell rsync to ignore missing source arguments so that +# partial builds do not abort installation. +ifneq ($(PERMISSIVE),) +override define INSTALL_SINGLE_RULE + $(if $(INSTALL_LIST),@mkdir -p $(INSTALL_PATH)) + $(if $(INSTALL_LIST),rsync -a --copy-unsafe-links --ignore-missing-args $= (INSTALL_LIST) $(INSTALL_PATH)/) +endef +endif + DEFAULT_INSTALL_RULE :=3D $(INSTALL_RULE) override define INSTALL_RULE $(DEFAULT_INSTALL_RULE) - @for DIR in $(TEST_INST_SUBDIRS); do \ - mkdir -p $(INSTALL_PATH)/$$DIR; \ - rsync -a $(OUTPUT)/$$DIR/*.bpf.o $(INSTALL_PATH)/$$DIR;\ + @for DIR in $(TEST_INST_SUBDIRS); do \ + mkdir -p $(INSTALL_PATH)/$$DIR; \ + rsync -a $(if $(PERMISSIVE),--ignore-missing-args) \ + $(OUTPUT)/$$DIR/*.bpf.o \ + $(INSTALL_PATH)/$$DIR; \ done endef --=20 2.53.0