Bug ID 1177403
Summary Impact of DEBUG_SECTION_MISMATCH
Classification openSUSE
Product openSUSE Tumbleweed
Version Current
Hardware Other
OS Other
Status NEW
Severity Normal
Priority P5 - None
Component Kernel
Assignee kernel-performance-bugs@suse.de
Reporter jslaby@suse.com
QA Contact qa-bugs@suse.de
CC jslaby@suse.com, lpechacek@suse.com, mbenes@suse.com, nstange@suse.com, petr.vorel@suse.com, pmladek@suse.com
Found By ---
Blocker ---

+++ This bug was initially created as a clone of Bug #1176907 +++

We enable DEBUG_SECTION_MISMATCH in our kernels to find potential problems with
section mismatches:
$ git grep CONFIG_DEBUG_SECTION_MISMATCH `git branch -rl
'origin/[So][Lp][Ee]*[0-9]' 'origin/[ms][at][sa]*'` --
config/x86_64/default|sort
origin/master:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y
origin/openSUSE-15.1:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y
origin/openSUSE-15.2:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y
origin/SLE12-SP4:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y
origin/SLE12-SP5:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y
origin/SLE15-SP1:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y
origin/SLE15-SP2:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y
origin/SLE15-SP3:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y
origin/stable:config/x86_64/default:CONFIG_DEBUG_SECTION_MISMATCH=y


It turned out that DEBUG_SECTION_MISMATCH disables inlining of some functions
by -fno-inline-functions-called-once. Makefile says:
# We trigger additional mismatches with less inlining
ifdef CONFIG_DEBUG_SECTION_MISMATCH
KBUILD_CFLAGS += $(call cc-option, -fno-inline-functions-called-once)
endif

There are only few defconfigs to enable the option in the (upstream) tree:
$ git grep DEBUG_SECTION_MISMATCH arch/
arch/arc/configs/tb10x_defconfig:CONFIG_DEBUG_SECTION_MISMATCH=y
arch/arm/configs/prima2_defconfig:CONFIG_DEBUG_SECTION_MISMATCH=y
arch/nds32/configs/defconfig:CONFIG_DEBUG_SECTION_MISMATCH=y
arch/s390/configs/debug_defconfig:CONFIG_DEBUG_SECTION_MISMATCH=y
arch/s390/configs/defconfig:CONFIG_DEBUG_SECTION_MISMATCH=y

defconfig vmlinux is by 2M larger with DEBUG_SECTION_MISMATCH=y:
-rwxr-xr-x 1 jslaby users 57M Oct  7 08:10 ../def-dis/vmlinux
-rwxr-xr-x 1 jslaby users 59M Oct  7 08:10 ../def-en/vmlinux


The question is what's the performance impact of the option? Performance team,
could you do some quick measurements? Thanks.


You are receiving this mail because: