From mboxrd@z Thu Jan 1 00:00:00 1970 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 dfw.source.kernel.org ([139.178.84.217]) by bombadil.infradead.org with esmtps (Exim 4.96 #2 (Red Hat Linux)) id 1qLKkG-003fGP-0W for linux-arm-kernel@lists.infradead.org; Mon, 17 Jul 2023 09:42:23 +0000 MIME-Version: 1.0 Date: Mon, 17 Jul 2023 10:42:15 +0100 From: Marc Zyngier Subject: Re: [PATCH] arm64: enable dead code elimination In-Reply-To: <20230717080739.1000460-1-wangkefeng.wang@huawei.com> References: <20230717080739.1000460-1-wangkefeng.wang@huawei.com> Message-ID: <801e30a093e41c3eebd675f0d224f8d7@kernel.org> List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset="us-ascii"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+lwn-linux-arm-kernel=archive.lwn.net@lists.infradead.org List-Archive: To: Kefeng Wang Cc: Catalin Marinas , Will Deacon , linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org On 2023-07-17 09:07, Kefeng Wang wrote: > Select CONFIG_HAVE_LD_DEAD_CODE_DATA_ELIMINATION for arm64, allowing > the > user to enable dead code elimination. In order for this to work, ensure > that we keep the necessary tables by annotating them with KEEP, also it > requires further changes to linker script to KEEP some tables and > wildcard > compiler generated sections into the right place. > > The following comparison is based 6.5-rc2 with defconfig, > > $ ./scripts/bloat-o-meter vmlinux-base vmlinux-new > add/remove: 3/1106 grow/shrink: 4102/6964 up/down: 35704/-99980 > (-64276) > Function old new delta > ... > Total: Before=17888959, After=17824683, chg -0.36% > > add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-44 (-44) > Data old new delta > ... > Total: Before=4820808, After=4820764, chg -0.00% > > add/remove: 0/1 grow/shrink: 0/1 up/down: 0/-1096 (-1096) > RO Data old new delta > ... > Total: Before=5179123, After=5178027, chg -0.02% > > $ size vmlinux-base vmlinux > text data bss dec hex filename > 25433734 15385766 630656 41450156 2787aac vmlinux-base > 24756738 15360870 629888 40747496 26dc1e8 vmlinux-new > > Memory available after booting, saving 704k on qemu, > base: 8084532K/8388608K > new: 8085236K/8388608K > > Signed-off-by: Kefeng Wang I took this patch for a spin in my tree, and ended up with: CC .vmlinux.export.o UPD include/generated/utsversion.h CC init/version-timestamp.o LD .tmp_vmlinux.kallsyms1 ld: init/main.o(__patchable_function_entries): error: need linked-to section for --gc-sections make[2]: *** [scripts/Makefile.vmlinux:36: vmlinux] Error 1 make[1]: *** [/home/maz/hot-poop/arm-platforms/Makefile:1238: vmlinux] Error 2 make: *** [Makefile:234: __sub-make] Error 2 so it's probably not ready for prime time. M. -- Jazz is not dead. It just smells funny... _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel