From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from out30-57.freemail.mail.aliyun.com ([115.124.30.57]:54159 "EHLO out30-57.freemail.mail.aliyun.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726363AbfLDAqs (ORCPT ); Tue, 3 Dec 2019 19:46:48 -0500 From: Shile Zhang Subject: [RFC PATCH v6 7/7] x86/unwind/orc: remove run-time ORC unwind tables sort Date: Wed, 4 Dec 2019 08:46:33 +0800 Message-Id: <20191204004633.88660-8-shile.zhang@linux.alibaba.com> In-Reply-To: <20191204004633.88660-1-shile.zhang@linux.alibaba.com> References: <20191204004633.88660-1-shile.zhang@linux.alibaba.com> MIME-Version: 1.0 Content-Transfer-Encoding: 8bit Sender: linux-kbuild-owner@vger.kernel.org List-ID: To: Peter Zijlstra , Josh Poimboeuf , Masahiro Yamada , Michal Marek , Thomas Gleixner , Ingo Molnar , Borislav Petkov , Andy Lutomirski , x86@kernel.org Cc: "H . Peter Anvin" , linux-kernel@vger.kernel.org, linux-kbuild@vger.kernel.org, Shile Zhang The orc_unwind and orc_unwind_ip tables are sorted in vmlinux link phase at build time, just remove the run-time sort. Signed-off-by: Shile Zhang Acked-by: Peter Zijlstra (Intel) --- arch/x86/kernel/unwind_orc.c | 8 +++++--- scripts/link-vmlinux.sh | 5 ++++- 2 files changed, 9 insertions(+), 4 deletions(-) diff --git a/arch/x86/kernel/unwind_orc.c b/arch/x86/kernel/unwind_orc.c index 332ae6530fa8..280da6fa9922 100644 --- a/arch/x86/kernel/unwind_orc.c +++ b/arch/x86/kernel/unwind_orc.c @@ -273,9 +273,11 @@ void __init unwind_init(void) return; } - /* Sort the .orc_unwind and .orc_unwind_ip tables: */ - sort(__start_orc_unwind_ip, num_entries, sizeof(int), orc_sort_cmp, - orc_sort_swap); + /* + * Note, orc_unwind and orc_unwind_ip tables has been sorted in + * vmlinux link phase by sorttable tool at build time. + * Its ready for binary search now. + */ /* Initialize the fast lookup table: */ lookup_num_blocks = orc_lookup_end - orc_lookup; diff --git a/scripts/link-vmlinux.sh b/scripts/link-vmlinux.sh index 01978d1e4c13..f0f08e2bbcd5 100755 --- a/scripts/link-vmlinux.sh +++ b/scripts/link-vmlinux.sh @@ -300,7 +300,10 @@ vmlinux_link vmlinux "${kallsymso}" ${btf_vmlinux_bin_o} if [ -n "${CONFIG_BUILDTIME_TABLE_SORT}" ]; then info SORTTAB vmlinux - sorttable vmlinux + if ! sorttable vmlinux; then + echo >&2 Failed to sort kernel tables + exit 1 + fi fi info SYSMAP System.map -- 2.24.0.rc2