From patchwork Wed Oct 19 08:56:00 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Olsa X-Patchwork-Id: 13011806 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 1546AC43219 for ; Wed, 19 Oct 2022 13:56:07 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231255AbiJSN4F (ORCPT ); Wed, 19 Oct 2022 09:56:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:49782 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233662AbiJSNxM (ORCPT ); Wed, 19 Oct 2022 09:53:12 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [IPv6:2604:1380:4601:e00::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E59D6104D1F; Wed, 19 Oct 2022 06:36:40 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id 9D34EB8232D; Wed, 19 Oct 2022 08:56:24 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id A26F0C433D7; Wed, 19 Oct 2022 08:56:20 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666169783; bh=mvgC1sP7uki5sMmm9a+x8WWds1qQzBdFAjhKUtv4gYQ=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=VgQ8SnAtiJlkWF/Wq1jsStnXkVIh+gJsVUNJgtT2xghBUrT+FsoQa7uWVbX2327zu UZXNrVoAfb+P659lrYG+yH2RnucGgVGXBdfuCwL7G0io0JAUyrz8YS1Kr6jVimByzQ btqAJm6vcSiwgoEnwFqm5w/kPPB3rC/y8tNbfeGXC7zB3pjGM3YEU9mUwxt2iaEjIf AQF8pj6kiXRc71KHrRm3u2em2Rs8UU55lR14vI22Jsp/MHSHCb9aRNR9ztZGKyJy2n a6P/jd44+UvYb3ocIp9zneLt6wtRQNba64JyB0sy0iRA1U/Ql0GGG37SdnQ8gqPmNl hL+HmuP4bxJEA== From: Jiri Olsa To: stable@vger.kernel.org Cc: Andrii Nakryiko , bpf@vger.kernel.org, Arnaldo Carvalho de Melo , Daniel Borkmann , Martin Rodriguez Reboredo , Javier Martinez Canillas , Ilya Leoshkevich , Nathan Chancellor , =?utf-8?q?Philip_M=C3=BCller?= Subject: [PATCH stable 5.10 1/5] bpf: Generate BTF_KIND_FLOAT when linking vmlinux Date: Wed, 19 Oct 2022 10:56:00 +0200 Message-Id: <20221019085604.1017583-2-jolsa@kernel.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019085604.1017583-1-jolsa@kernel.org> References: <20221019085604.1017583-1-jolsa@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org From: Ilya Leoshkevich commit db16c1fe92d7ba7d39061faef897842baee2c887 upstream. [backported for dependency only extra_paholeopt variable setup and usage, we don't want floats generated in 5.10] pahole v1.21 supports the --btf_gen_floats flag, which makes it generate the information about the floating-point types [1]. Adjust link-vmlinux.sh to pass this flag to pahole in case it's supported, which is determined using a simple version check. [1] https://lore.kernel.org/dwarves/YHRiXNX1JUF2Az0A@kernel.org/ Signed-off-by: Ilya Leoshkevich Signed-off-by: Andrii Nakryiko Acked-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20210413190043.21918-1-iii@linux.ibm.com Signed-off-by: Jiri Olsa --- scripts/link-vmlinux.sh | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index d0b44bee9286..cdfccbfed452 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -146,6 +146,7 @@ vmlinux_link() gen_btf() { local pahole_ver + local extra_paholeopt= if ! [ -x "$(command -v ${PAHOLE})" ]; then echo >&2 "BTF: ${1}: pahole (${PAHOLE}) is not available" @@ -161,7 +162,7 @@ gen_btf() vmlinux_link ${1} info "BTF" ${2} - LLVM_OBJCOPY=${OBJCOPY} ${PAHOLE} -J ${1} + LLVM_OBJCOPY=${OBJCOPY} ${PAHOLE} -J ${extra_paholeopt} ${1} # Create ${2} which contains just .BTF section but no symbols. Add # SHF_ALLOC because .BTF will be part of the vmlinux image. --strip-all From patchwork Wed Oct 19 08:56:01 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Olsa X-Patchwork-Id: 13011494 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 33109C4332F for ; Wed, 19 Oct 2022 09:05:18 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232142AbiJSJFO (ORCPT ); Wed, 19 Oct 2022 05:05:14 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:56204 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232517AbiJSJE2 (ORCPT ); Wed, 19 Oct 2022 05:04:28 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id E3CCDAF1BC; Wed, 19 Oct 2022 01:57:54 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 7E9646182C; Wed, 19 Oct 2022 08:56:34 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id CD034C43470; Wed, 19 Oct 2022 08:56:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666169793; bh=scqpA+ha7SzlbjXpyjkq6PnxKVFNnwZoNtO5fqgmj+I=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=UEo3G+RClphBrxr72vNpX2vPrejo35VbzycOkLHYEL23oO57LelB9Vr+wXn3tkL9A /gWvmcTiGhe6XYhUwdUow55Q/WxMT5g0zTdGDLz5WWiD4UbYbcyXpBn/T4hQquEeqr LGmTeBBmEqGS1pMve40cbjxbM0wY5//DSaGKjnNi9pAScR0lHCJj+7yUM3NjL7Ao/L 6o35DE7EONjiPhE1XFn17bP8LR64JcQy8UhdL5+v3CzPp9YNXjBxPCMJI8DbNxRcTC FzjOJB/Ls1CEqCaiDaaaYWYGrgvK6QJQuRLZ3025WJruBMBGToVj74xSh9Hywis7be TvI2SCTrbGiMA== From: Jiri Olsa To: stable@vger.kernel.org Cc: Andrii Nakryiko , Arnaldo Carvalho de Melo , bpf@vger.kernel.org, Arnaldo Carvalho de Melo , Daniel Borkmann , Martin Rodriguez Reboredo , Javier Martinez Canillas , Ilya Leoshkevich , Nathan Chancellor , =?utf-8?q?Philip_M=C3=BCller?= Subject: [PATCH stable 5.10 2/5] kbuild: Quote OBJCOPY var to avoid a pahole call break the build Date: Wed, 19 Oct 2022 10:56:01 +0200 Message-Id: <20221019085604.1017583-3-jolsa@kernel.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019085604.1017583-1-jolsa@kernel.org> References: <20221019085604.1017583-1-jolsa@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org From: Javier Martinez Canillas commit ff2e6efda0d5c51b33e2bcc0b0b981ac0a0ef214 upstream. [backported for dependency, skipped Makefile.modfinal change, because module BTF is not supported in 5.10] The ccache tool can be used to speed up cross-compilation, by calling the compiler and binutils through ccache. For example, following should work: $ export ARCH=arm64 CROSS_COMPILE="ccache aarch64-linux-gnu-" $ make M=drivers/gpu/drm/rockchip/ but pahole fails to extract the BTF info from DWARF, breaking the build: CC [M] drivers/gpu/drm/rockchip//rockchipdrm.mod.o LD [M] drivers/gpu/drm/rockchip//rockchipdrm.ko BTF [M] drivers/gpu/drm/rockchip//rockchipdrm.ko aarch64-linux-gnu-objcopy: invalid option -- 'J' Usage: aarch64-linux-gnu-objcopy [option(s)] in-file [out-file] Copies a binary file, possibly transforming it in the process ... make[1]: *** [scripts/Makefile.modpost:156: __modpost] Error 2 make: *** [Makefile:1866: modules] Error 2 this fails because OBJCOPY is set to "ccache aarch64-linux-gnu-copy" and later pahole is executed with the following command line: LLVM_OBJCOPY=$(OBJCOPY) $(PAHOLE) -J --btf_base vmlinux $@ which gets expanded to: LLVM_OBJCOPY=ccache aarch64-linux-gnu-objcopy pahole -J ... instead of: LLVM_OBJCOPY="ccache aarch64-linux-gnu-objcopy" pahole -J ... Fixes: 5f9ae91f7c0d ("kbuild: Build kernel module BTFs if BTF is enabled and pahole supports it") Signed-off-by: Javier Martinez Canillas Signed-off-by: Andrii Nakryiko Acked-by: Andrii Nakryiko Acked-by: Arnaldo Carvalho de Melo Link: https://lore.kernel.org/bpf/20210526215228.3729875-1-javierm@redhat.com --- scripts/link-vmlinux.sh | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index cdfccbfed452..72bf14df6903 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -162,7 +162,7 @@ gen_btf() vmlinux_link ${1} info "BTF" ${2} - LLVM_OBJCOPY=${OBJCOPY} ${PAHOLE} -J ${extra_paholeopt} ${1} + LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${extra_paholeopt} ${1} # Create ${2} which contains just .BTF section but no symbols. Add # SHF_ALLOC because .BTF will be part of the vmlinux image. --strip-all From patchwork Wed Oct 19 08:56:02 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Olsa X-Patchwork-Id: 13011493 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 270D6C43219 for ; Wed, 19 Oct 2022 09:05:15 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S232132AbiJSJFN (ORCPT ); Wed, 19 Oct 2022 05:05:13 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:47738 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232529AbiJSJEa (ORCPT ); Wed, 19 Oct 2022 05:04:30 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 04923AC3B6; Wed, 19 Oct 2022 01:57:58 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id BA2176186B; Wed, 19 Oct 2022 08:56:46 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 677B2C433D7; Wed, 19 Oct 2022 08:56:42 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666169806; bh=FHplcX8F9FjqJEVgQ0myqZXIIqUdUA+fWPAh3k3STBI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nMbc1Id9QkMtEDL5f3VdQu/JF7COp9SBHborA0lIktnilsvzVRFJ2Aa2Go55ZLjlq 5wpm3b6BQEdKwAA+VccyvB6sH3zTsAgQVPWFR4DSHZRarpWweRlIHiZInteaJmB2oN qD2CACWFrarMmgdVuMFy7N7GGG3pY0r2wi6CF+cNjOGbF2b0vgiZkMEkgbFd7FK0XN 9T88abcmWKhoph3awtxGLOrG8gFjFbrVpOVVj4owi5JQqPDvio8rPMSmbeRNbfii+e EEH9xrecU681XGCHWAOf3t+wAuvU4oSgjvFUM6tcxludwucvagDTMIj2y+VbT8zFXY u+gmnnkukgogA== From: Jiri Olsa To: stable@vger.kernel.org Cc: Mel Gorman , Arnaldo Carvalho de Melo , Hao Luo , Michal Suchanek , bpf@vger.kernel.org, Arnaldo Carvalho de Melo , Daniel Borkmann , Martin Rodriguez Reboredo , Andrii Nakryiko , Javier Martinez Canillas , Ilya Leoshkevich , Nathan Chancellor , =?utf-8?q?Philip_M=C3=BCller?= Subject: [PATCH stable 5.10 3/5] kbuild: skip per-CPU BTF generation for pahole v1.18-v1.21 Date: Wed, 19 Oct 2022 10:56:02 +0200 Message-Id: <20221019085604.1017583-4-jolsa@kernel.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019085604.1017583-1-jolsa@kernel.org> References: <20221019085604.1017583-1-jolsa@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org From: Andrii Nakryiko commit a0b8200d06ad6450c179407baa5f0f52f8cfcc97 upstream. [small context changes due to missing floats support in 5.10] Commit "mm/page_alloc: convert per-cpu list protection to local_lock" will introduce a zero-sized per-CPU variable, which causes pahole to generate invalid BTF. Only pahole versions 1.18 through 1.21 are impacted, as before 1.18 pahole doesn't know anything about per-CPU variables, and 1.22 contains the proper fix for the issue. Luckily, pahole 1.18 got --skip_encoding_btf_vars option disabling BTF generation for per-CPU variables in anticipation of some unanticipated problems. So use this escape hatch to disable per-CPU var BTF info on those problematic pahole versions. Users relying on availability of per-CPU var BTFs would need to upgrade to pahole 1.22+, but everyone won't notice any regressions. Link: https://lkml.kernel.org/r/20210530002536.3193829-1-andrii@kernel.org Signed-off-by: Andrii Nakryiko Acked-by: Mel Gorman Cc: Arnaldo Carvalho de Melo Cc: Hao Luo Cc: Michal Suchanek Cc: Jiri Olsa Signed-off-by: Andrew Morton Signed-off-by: Linus Torvalds Signed-off-by: Jiri Olsa --- scripts/link-vmlinux.sh | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index 72bf14df6903..bbb22be4c8f1 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -161,6 +161,11 @@ gen_btf() vmlinux_link ${1} + if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then + # pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars + extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars" + fi + info "BTF" ${2} LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${extra_paholeopt} ${1} From patchwork Wed Oct 19 08:56:03 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Olsa X-Patchwork-Id: 13011492 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 4B985C4332F for ; Wed, 19 Oct 2022 09:05:14 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231911AbiJSJFM (ORCPT ); Wed, 19 Oct 2022 05:05:12 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:55442 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S232614AbiJSJEo (ORCPT ); Wed, 19 Oct 2022 05:04:44 -0400 Received: from dfw.source.kernel.org (dfw.source.kernel.org [IPv6:2604:1380:4641:c500::1]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id A4A15B1BBA; Wed, 19 Oct 2022 01:58:11 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by dfw.source.kernel.org (Postfix) with ESMTPS id 25EC16186A; Wed, 19 Oct 2022 08:56:57 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id 76BC8C433D7; Wed, 19 Oct 2022 08:56:53 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666169816; bh=uGAFkbEvNZHwWh23xLD17+tsvC4kD5K56+wkysblkbg=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=YChWQ7IQfQkeGosWoBP6iLEGsX669D5n7rtiNoAHQgU6oVLXyzy2f7m3Hjl1m00rP lg7kVjsEhNCEjfW7xjoQL9u2xkTjriWyboWjzOO9SHmP8h7knsfJ3sgZAtI9/YZ4Hb Zf6MxMm5l2R+YGvqr2UJo7DeXokj4zdof3otDeBjmtOv4ldXfVb3REUIM6A+oZVo7I Ri5zYu17vYSZK6KQ0vbmkxSsOWeO52frmstUieb395sBD0JJv9nGmWzeo+Jdqi5AXN auZzPxC8JUu+eW0LcyhxV3CNMHu+UvU9IQFa2A4XjFun81j7hEy/riZpI5Ks0rTuxT vP6fil8RaRwiw== From: Jiri Olsa To: stable@vger.kernel.org Cc: Andrii Nakryiko , bpf@vger.kernel.org, Arnaldo Carvalho de Melo , Daniel Borkmann , Martin Rodriguez Reboredo , Javier Martinez Canillas , Ilya Leoshkevich , Nathan Chancellor , =?utf-8?q?Philip_M=C3=BCller?= Subject: [PATCH stable 5.10 4/5] kbuild: Unify options for BTF generation for vmlinux and modules Date: Wed, 19 Oct 2022 10:56:03 +0200 Message-Id: <20221019085604.1017583-5-jolsa@kernel.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019085604.1017583-1-jolsa@kernel.org> References: <20221019085604.1017583-1-jolsa@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org From: Jiri Olsa commit 9741e07ece7c247dd65e1aa01e16b683f01c05a8 upstream. [skipped --btf_gen_floats option in pahole-flags.sh, skipped Makefile.modfinal change, because there's no BTF kmod support, squashing in 'exit 0' change from merge commit fc02cb2b37fe] Using new PAHOLE_FLAGS variable to pass extra arguments to pahole for both vmlinux and modules BTF data generation. Adding new scripts/pahole-flags.sh script that detect and prints pahole options. [ fixed issues found by kernel test robot ] Signed-off-by: Jiri Olsa Signed-off-by: Andrii Nakryiko Acked-by: Andrii Nakryiko Link: https://lore.kernel.org/bpf/20211029125729.70002-1-jolsa@kernel.org --- Makefile | 3 +++ scripts/link-vmlinux.sh | 8 +------- scripts/pahole-flags.sh | 17 +++++++++++++++++ 3 files changed, 21 insertions(+), 7 deletions(-) create mode 100755 scripts/pahole-flags.sh diff --git a/Makefile b/Makefile index b824bdb0457c..fc8f1a1c0d98 100644 --- a/Makefile +++ b/Makefile @@ -465,6 +465,8 @@ LZ4 = lz4c XZ = xz ZSTD = zstd +PAHOLE_FLAGS = $(shell PAHOLE=$(PAHOLE) $(srctree)/scripts/pahole-flags.sh) + CHECKFLAGS := -D__linux__ -Dlinux -D__STDC__ -Dunix -D__unix__ \ -Wbitwise -Wno-return-void -Wno-unknown-attribute $(CF) NOSTDINC_FLAGS := @@ -518,6 +520,7 @@ export KBUILD_CFLAGS CFLAGS_KERNEL CFLAGS_MODULE export KBUILD_AFLAGS AFLAGS_KERNEL AFLAGS_MODULE export KBUILD_AFLAGS_MODULE KBUILD_CFLAGS_MODULE KBUILD_LDFLAGS_MODULE export KBUILD_AFLAGS_KERNEL KBUILD_CFLAGS_KERNEL +export PAHOLE_FLAGS # Files to ignore in find ... statements diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index bbb22be4c8f1..acd07a70a2f4 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -146,7 +146,6 @@ vmlinux_link() gen_btf() { local pahole_ver - local extra_paholeopt= if ! [ -x "$(command -v ${PAHOLE})" ]; then echo >&2 "BTF: ${1}: pahole (${PAHOLE}) is not available" @@ -161,13 +160,8 @@ gen_btf() vmlinux_link ${1} - if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then - # pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars - extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars" - fi - info "BTF" ${2} - LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${extra_paholeopt} ${1} + LLVM_OBJCOPY="${OBJCOPY}" ${PAHOLE} -J ${PAHOLE_FLAGS} ${1} # Create ${2} which contains just .BTF section but no symbols. Add # SHF_ALLOC because .BTF will be part of the vmlinux image. --strip-all diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh new file mode 100755 index 000000000000..27445cb72974 --- /dev/null +++ b/scripts/pahole-flags.sh @@ -0,0 +1,17 @@ +#!/bin/sh +# SPDX-License-Identifier: GPL-2.0 + +extra_paholeopt= + +if ! [ -x "$(command -v ${PAHOLE})" ]; then + exit 0 +fi + +pahole_ver=$(${PAHOLE} --version | sed -E 's/v([0-9]+)\.([0-9]+)/\1\2/') + +if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then + # pahole 1.18 through 1.21 can't handle zero-sized per-CPU vars + extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars" +fi + +echo ${extra_paholeopt} From patchwork Wed Oct 19 08:56:04 2022 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Jiri Olsa X-Patchwork-Id: 13011798 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id A9675C433FE for ; Wed, 19 Oct 2022 13:49:41 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S231450AbiJSNti (ORCPT ); Wed, 19 Oct 2022 09:49:38 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:44130 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S233590AbiJSNsJ (ORCPT ); Wed, 19 Oct 2022 09:48:09 -0400 Received: from ams.source.kernel.org (ams.source.kernel.org [145.40.68.75]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 1A50A169CE7; Wed, 19 Oct 2022 06:32:44 -0700 (PDT) Received: from smtp.kernel.org (relay.kernel.org [52.25.139.140]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by ams.source.kernel.org (Postfix) with ESMTPS id C9F9CB82403; Wed, 19 Oct 2022 08:57:07 +0000 (UTC) Received: by smtp.kernel.org (Postfix) with ESMTPSA id E977AC433D7; Wed, 19 Oct 2022 08:57:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1666169826; bh=TWvekpxCQLsPdCpQ6E83BRmLzXBNTJyP0GcQMrJFkck=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=nw1qmLALAU7LVw6td58WiRkh86vmdlP6ufQAoVQITVnehA7Sfe/PLIpdRtc4Hv3jH WQBsBZwN812c6G8u28lqeqPkmwUBFmuD7PzQ+jIPHom5+Rg91olAxcSAJ8WRcpaSkN Q+jRVAdfCoh2VldfdHVlWDZOXX8VtXvakDtXM2RbOkfqOwaRizs+AvVbf6czVH1NFK LBE6hSqdXBid15L3KzS30vwPqbnWRQz0ssZsyOiaPvhzVaM93KYbnRJkrzlSOgGr/q zmlmvTfRjP2zDqWatv5jIsGvc6ejkwj9DZEvrcEiOGj0sugg78apiRB37XBTVObN52 LT1JWQc9JbYbQ== From: Jiri Olsa To: stable@vger.kernel.org Cc: bpf@vger.kernel.org, Arnaldo Carvalho de Melo , Daniel Borkmann , Martin Rodriguez Reboredo , Andrii Nakryiko , Javier Martinez Canillas , Ilya Leoshkevich , Nathan Chancellor , =?utf-8?q?Philip_M=C3=BCller?= Subject: [PATCH stable 5.10 5/5] kbuild: Add skip_encoding_btf_enum64 option to pahole Date: Wed, 19 Oct 2022 10:56:04 +0200 Message-Id: <20221019085604.1017583-6-jolsa@kernel.org> X-Mailer: git-send-email 2.37.3 In-Reply-To: <20221019085604.1017583-1-jolsa@kernel.org> References: <20221019085604.1017583-1-jolsa@kernel.org> MIME-Version: 1.0 Precedence: bulk List-ID: X-Mailing-List: bpf@vger.kernel.org From: Martin Rodriguez Reboredo New pahole (version 1.24) generates by default new BTF_KIND_ENUM64 BTF tag, which is not supported by stable kernel. As a result the kernel with CONFIG_DEBUG_INFO_BTF option will fail to compile with following error: BTFIDS vmlinux FAILED: load BTF from vmlinux: Invalid argument New pahole provides --skip_encoding_btf_enum64 option to skip BTF_KIND_ENUM64 generation and produce BTF supported by stable kernel. Adding this option to scripts/pahole-flags.sh. This change does not have equivalent commit in linus tree, because linus tree has support for BTF_KIND_ENUM64 tag, so it does not need to be disabled. Signed-off-by: Martin Rodriguez Reboredo Signed-off-by: Jiri Olsa --- scripts/pahole-flags.sh | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/scripts/pahole-flags.sh b/scripts/pahole-flags.sh index 27445cb72974..8c82173e42e5 100755 --- a/scripts/pahole-flags.sh +++ b/scripts/pahole-flags.sh @@ -14,4 +14,8 @@ if [ "${pahole_ver}" -ge "118" ] && [ "${pahole_ver}" -le "121" ]; then extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_vars" fi +if [ "${pahole_ver}" -ge "124" ]; then + extra_paholeopt="${extra_paholeopt} --skip_encoding_btf_enum64" +fi + echo ${extra_paholeopt}