diff mbox series

Makefile: extend 32B aligned debug option to 64B aligned

Message ID 1620286499-40999-1-git-send-email-feng.tang@intel.com (mailing list archive)
State New
Headers show
Series Makefile: extend 32B aligned debug option to 64B aligned | expand

Commit Message

Feng Tang May 6, 2021, 7:34 a.m. UTC
commit 09c60546f04f ("./Makefile: add debug option to enable
function aligned on 32 bytes") was introduced to help debugging
strange kernel performance changes caused by code alignment
change.

Recently we found 2 similar cases [1][2] caused by code-alignment
changes, which can only be identified by forcing 64 bytes aligned
for all functions.

Originally, 32 bytes was used mainly for not wasting too much
text space, but this option is only for debug anyway where text
space is not a big concern. So extend the alignment to 64 bytes
to cover more similar cases.

[1].https://lore.kernel.org/lkml/20210427090013.GG32408@xsang-OptiPlex-9020/
[2].https://lore.kernel.org/lkml/20210420030837.GB31773@xsang-OptiPlex-9020/
Signed-off-by: Feng Tang <feng.tang@intel.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Andi Kleen <ak@linux.intel.com>
---
 Makefile          | 4 ++--
 lib/Kconfig.debug | 4 ++--
 2 files changed, 4 insertions(+), 4 deletions(-)

Comments

Masahiro Yamada May 12, 2021, 7:14 a.m. UTC | #1
On Thu, May 6, 2021 at 4:35 PM Feng Tang <feng.tang@intel.com> wrote:
>
> commit 09c60546f04f ("./Makefile: add debug option to enable
> function aligned on 32 bytes") was introduced to help debugging
> strange kernel performance changes caused by code alignment
> change.
>
> Recently we found 2 similar cases [1][2] caused by code-alignment
> changes, which can only be identified by forcing 64 bytes aligned
> for all functions.
>
> Originally, 32 bytes was used mainly for not wasting too much
> text space, but this option is only for debug anyway where text
> space is not a big concern. So extend the alignment to 64 bytes
> to cover more similar cases.
>
> [1].https://lore.kernel.org/lkml/20210427090013.GG32408@xsang-OptiPlex-9020/
> [2].https://lore.kernel.org/lkml/20210420030837.GB31773@xsang-OptiPlex-9020/
> Signed-off-by: Feng Tang <feng.tang@intel.com>
> Cc: Thomas Gleixner <tglx@linutronix.de>
> Cc: Andi Kleen <ak@linux.intel.com>


Applied to linux-kbuild.
Thanks.



> ---
>  Makefile          | 4 ++--
>  lib/Kconfig.debug | 4 ++--
>  2 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/Makefile b/Makefile
> index 72af8e4..a9f6715 100644
> --- a/Makefile
> +++ b/Makefile
> @@ -958,8 +958,8 @@ KBUILD_CFLAGS       += $(CC_FLAGS_CFI)
>  export CC_FLAGS_CFI
>  endif
>
> -ifdef CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B
> -KBUILD_CFLAGS += -falign-functions=32
> +ifdef CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B
> +KBUILD_CFLAGS += -falign-functions=64
>  endif
>
>  # arch Makefile may override CC so keep this after arch Makefile is included
> diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
> index 678c1396..6ce26b8 100644
> --- a/lib/Kconfig.debug
> +++ b/lib/Kconfig.debug
> @@ -400,8 +400,8 @@ config SECTION_MISMATCH_WARN_ONLY
>
>           If unsure, say Y.
>
> -config DEBUG_FORCE_FUNCTION_ALIGN_32B
> -       bool "Force all function address 32B aligned" if EXPERT
> +config DEBUG_FORCE_FUNCTION_ALIGN_64B
> +       bool "Force all function address 64B aligned" if EXPERT
>         help
>           There are cases that a commit from one domain changes the function
>           address alignment of other domains, and cause magic performance
> --
> 2.7.4
>
diff mbox series

Patch

diff --git a/Makefile b/Makefile
index 72af8e4..a9f6715 100644
--- a/Makefile
+++ b/Makefile
@@ -958,8 +958,8 @@  KBUILD_CFLAGS	+= $(CC_FLAGS_CFI)
 export CC_FLAGS_CFI
 endif
 
-ifdef CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_32B
-KBUILD_CFLAGS += -falign-functions=32
+ifdef CONFIG_DEBUG_FORCE_FUNCTION_ALIGN_64B
+KBUILD_CFLAGS += -falign-functions=64
 endif
 
 # arch Makefile may override CC so keep this after arch Makefile is included
diff --git a/lib/Kconfig.debug b/lib/Kconfig.debug
index 678c1396..6ce26b8 100644
--- a/lib/Kconfig.debug
+++ b/lib/Kconfig.debug
@@ -400,8 +400,8 @@  config SECTION_MISMATCH_WARN_ONLY
 
 	  If unsure, say Y.
 
-config DEBUG_FORCE_FUNCTION_ALIGN_32B
-	bool "Force all function address 32B aligned" if EXPERT
+config DEBUG_FORCE_FUNCTION_ALIGN_64B
+	bool "Force all function address 64B aligned" if EXPERT
 	help
 	  There are cases that a commit from one domain changes the function
 	  address alignment of other domains, and cause magic performance