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.