From mboxrd@z Thu Jan 1 00:00:00 1970 From: Heiko Carstens Subject: Re: [PATCH] compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING Date: Thu, 21 Mar 2019 09:01:33 +0100 Message-ID: <20190321080133.GB3916@osiris> References: <1553062828-27798-1-git-send-email-yamada.masahiro@socionext.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Return-path: Content-Disposition: inline In-Reply-To: <1553062828-27798-1-git-send-email-yamada.masahiro@socionext.com> Sender: linux-kernel-owner@vger.kernel.org To: Masahiro Yamada Cc: Andrew Morton , linux-arch , linux-arm-kernel@lists.infradead.org, Ingo Molnar , Paul Burton , linux-mips@vger.kernel.org, x86@kernel.org, linux-mtd@lists.infradead.org, Arnd Bergmann , linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, Dave Hansen , linuxppc-dev@lists.ozlabs.org, Michael Ellerman List-Id: linux-arch.vger.kernel.org On Wed, Mar 20, 2019 at 03:20:27PM +0900, Masahiro Yamada wrote: > Commit 60a3cdd06394 ("x86: add optimized inlining") introduced > CONFIG_OPTIMIZE_INLINING, but it has been available only for x86. > > The idea is obviously arch-agnostic although we need some code fixups. > This commit moves the config entry from arch/x86/Kconfig.debug to > lib/Kconfig.debug so that all architectures (except MIPS for now) can > benefit from it. > > At this moment, I added "depends on !MIPS" because fixing 0day bot reports > for MIPS was complex to me. > > I tested this patch on my arm/arm64 boards. > > This can make a huge difference in kernel image size especially when > CONFIG_OPTIMIZE_FOR_SIZE is enabled. > > For example, I got 3.5% smaller arm64 kernel image for v5.1-rc1. > > dec file > 18983424 arch/arm64/boot/Image.before > 18321920 arch/arm64/boot/Image.after Well, this will change, since now people (have to) start adding __always_inline annotations on all architectures, most likely until all have about the same amount of annotations like x86. This will reduce the benefit. Not sure if it's really a win that we get the inline vs __always_inline discussion now on all architectures. From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx0a-001b2d01.pphosted.com ([148.163.156.1]:43442 "EHLO mx0a-001b2d01.pphosted.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727875AbfCUIBp (ORCPT ); Thu, 21 Mar 2019 04:01:45 -0400 Received: from pps.filterd (m0098394.ppops.net [127.0.0.1]) by mx0a-001b2d01.pphosted.com (8.16.0.27/8.16.0.27) with SMTP id x2L7sfSG085015 for ; Thu, 21 Mar 2019 04:01:43 -0400 Received: from e06smtp04.uk.ibm.com (e06smtp04.uk.ibm.com [195.75.94.100]) by mx0a-001b2d01.pphosted.com with ESMTP id 2rc5ftu164-1 (version=TLSv1.2 cipher=AES256-GCM-SHA384 bits=256 verify=NOT) for ; Thu, 21 Mar 2019 04:01:43 -0400 Received: from localhost by e06smtp04.uk.ibm.com with IBM ESMTP SMTP Gateway: Authorized Use Only! Violators will be prosecuted for from ; Thu, 21 Mar 2019 08:01:33 -0000 Date: Thu, 21 Mar 2019 09:01:33 +0100 From: Heiko Carstens Subject: Re: [PATCH] compiler: allow all arches to enable CONFIG_OPTIMIZE_INLINING References: <1553062828-27798-1-git-send-email-yamada.masahiro@socionext.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <1553062828-27798-1-git-send-email-yamada.masahiro@socionext.com> Message-ID: <20190321080133.GB3916@osiris> Sender: linux-arch-owner@vger.kernel.org List-ID: To: Masahiro Yamada Cc: Andrew Morton , linux-arch , linux-arm-kernel@lists.infradead.org, Ingo Molnar , Paul Burton , linux-mips@vger.kernel.org, x86@kernel.org, linux-mtd@lists.infradead.org, Arnd Bergmann , linux-kernel@vger.kernel.org, linux-s390@vger.kernel.org, Dave Hansen , linuxppc-dev@lists.ozlabs.org, Michael Ellerman Message-ID: <20190321080133.WZv7jYxtsdyGEdQE1OAlyOY9VXT4GSmjkug7UK4a4Kc@z> On Wed, Mar 20, 2019 at 03:20:27PM +0900, Masahiro Yamada wrote: > Commit 60a3cdd06394 ("x86: add optimized inlining") introduced > CONFIG_OPTIMIZE_INLINING, but it has been available only for x86. > > The idea is obviously arch-agnostic although we need some code fixups. > This commit moves the config entry from arch/x86/Kconfig.debug to > lib/Kconfig.debug so that all architectures (except MIPS for now) can > benefit from it. > > At this moment, I added "depends on !MIPS" because fixing 0day bot reports > for MIPS was complex to me. > > I tested this patch on my arm/arm64 boards. > > This can make a huge difference in kernel image size especially when > CONFIG_OPTIMIZE_FOR_SIZE is enabled. > > For example, I got 3.5% smaller arm64 kernel image for v5.1-rc1. > > dec file > 18983424 arch/arm64/boot/Image.before > 18321920 arch/arm64/boot/Image.after Well, this will change, since now people (have to) start adding __always_inline annotations on all architectures, most likely until all have about the same amount of annotations like x86. This will reduce the benefit. Not sure if it's really a win that we get the inline vs __always_inline discussion now on all architectures.