# git rev-parse -q --verify 792993919349fefba20f58ae4843c80e8b01f518^{commit} 792993919349fefba20f58ae4843c80e8b01f518 already have revision, skipping fetch # git checkout -q -f -B kisskb 792993919349fefba20f58ae4843c80e8b01f518 # git clean -qxdf # < git log -1 # commit 792993919349fefba20f58ae4843c80e8b01f518 # Author: Christophe Leroy # Date: Fri Feb 11 15:16:51 2022 +0100 # # powerpc/64: Force inlining of prevent_user_access() and set_kuap() # # A ppc64_defconfig build exhibits about 10 copied of # prevent_user_access(). It also have one copy of set_kuap(). # # c000000000017340 <.prevent_user_access.constprop.0>: # c00000000001a038: 4b ff d3 09 bl c000000000017340 <.prevent_user_access.constprop.0> # c00000000001aabc: 4b ff c8 85 bl c000000000017340 <.prevent_user_access.constprop.0> # c00000000001ab38: 4b ff c8 09 bl c000000000017340 <.prevent_user_access.constprop.0> # c00000000001ade0: 4b ff c5 61 bl c000000000017340 <.prevent_user_access.constprop.0> # c000000000039b90 <.prevent_user_access.constprop.0>: # c00000000003ac08: 4b ff ef 89 bl c000000000039b90 <.prevent_user_access.constprop.0> # c00000000003b9d0: 4b ff e1 c1 bl c000000000039b90 <.prevent_user_access.constprop.0> # c00000000003ba54: 4b ff e1 3d bl c000000000039b90 <.prevent_user_access.constprop.0> # c00000000003bbfc: 4b ff df 95 bl c000000000039b90 <.prevent_user_access.constprop.0> # c00000000015dde0 <.prevent_user_access.constprop.0>: # c0000000001612c0: 4b ff cb 21 bl c00000000015dde0 <.prevent_user_access.constprop.0> # c000000000161b54: 4b ff c2 8d bl c00000000015dde0 <.prevent_user_access.constprop.0> # c000000000188cf0 <.prevent_user_access.constprop.0>: # c00000000018d658: 4b ff b6 99 bl c000000000188cf0 <.prevent_user_access.constprop.0> # c00000000030fe20 <.prevent_user_access.constprop.0>: # c0000000003123d4: 4b ff da 4d bl c00000000030fe20 <.prevent_user_access.constprop.0> # c000000000313970: 4b ff c4 b1 bl c00000000030fe20 <.prevent_user_access.constprop.0> # c0000000005e6bd0 <.prevent_user_access.constprop.0>: # c0000000005e7d8c: 4b ff ee 45 bl c0000000005e6bd0 <.prevent_user_access.constprop.0> # c0000000007bcae0 <.prevent_user_access.constprop.0>: # c0000000007bda10: 4b ff f0 d1 bl c0000000007bcae0 <.prevent_user_access.constprop.0> # c0000000007bda54: 4b ff f0 8d bl c0000000007bcae0 <.prevent_user_access.constprop.0> # c0000000007bdd28: 4b ff ed b9 bl c0000000007bcae0 <.prevent_user_access.constprop.0> # c0000000007c0390: 4b ff c7 51 bl c0000000007bcae0 <.prevent_user_access.constprop.0> # c00000000094e4f0 <.prevent_user_access.constprop.0>: # c000000000950e40: 4b ff d6 b1 bl c00000000094e4f0 <.prevent_user_access.constprop.0> # c00000000097d2d0 <.prevent_user_access.constprop.0>: # c0000000009813fc: 4b ff be d5 bl c00000000097d2d0 <.prevent_user_access.constprop.0> # c000000000acd540 <.prevent_user_access.constprop.0>: # c000000000ad1d60: 4b ff b7 e1 bl c000000000acd540 <.prevent_user_access.constprop.0> # c000000000e5d680 <.prevent_user_access.constprop.0>: # c000000000e64b60: 4b ff 8b 21 bl c000000000e5d680 <.prevent_user_access.constprop.0> # c000000000e64b6c: 4b ff 8b 15 bl c000000000e5d680 <.prevent_user_access.constprop.0> # c000000000e64c38: 4b ff 8a 49 bl c000000000e5d680 <.prevent_user_access.constprop.0> # # When building signal_64.c with -Winline the following messages appear: # # ./arch/powerpc/include/asm/book3s/64/kup.h:331:20: error: inlining failed in call to 'set_kuap': call is unlikely and code size would grow [-Werror=inline] # ./arch/powerpc/include/asm/book3s/64/kup.h:401:20: error: inlining failed in call to 'prevent_user_access.constprop': call is unlikely and code size would grow [-Werror=inline] # # Those functions are used on hot pathes and have been # expected to be inlined at all time. # # Force them inline. # # This patch reduces the kernel text size by 700 bytes, confirming # that not inlining those functions is not worth it. # # Signed-off-by: Christophe Leroy # Signed-off-by: Michael Ellerman # Link: https://lore.kernel.org/r/eff9b2b211957fa2e8707e46f31674097fd563a3.1644588972.git.christophe.leroy@csgroup.eu # < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 792993919349fefba20f58ae4843c80e8b01f518 # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig+ppc64le_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- randconfig WARNING: unmet direct dependencies detected for SND_SOC_MPC5200_AC97 Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_POWERPC_SOC [=m] && PPC_MPC52xx [=y] && PPC_BESTCOMM [=n] Selected by [m]: - SND_MPC52xx_SOC_PCM030 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_POWERPC_SOC [=m] && PPC_MPC5200_SIMPLE [=y] - SND_MPC52xx_SOC_EFIKA [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_POWERPC_SOC [=m] && PPC_EFIKA [=y] WARNING: unmet direct dependencies detected for SND_SOC_WM9712 Depends on [n]: SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && (SND_SOC_AC97_BUS [=n] || AC97_BUS_NEW [=n]) Selected by [m]: - SND_MPC52xx_SOC_PCM030 [=m] && SOUND [=m] && !UML && SND [=m] && SND_SOC [=m] && SND_POWERPC_SOC [=m] && PPC_MPC5200_SIMPLE [=y] # Added to kconfig CONFIG_STANDALONE=y # Added to kconfig CONFIG_BUILD_DOCSRC=n # Added to kconfig CONFIG_MODULE_SIG=n # Added to kconfig CONFIG_CPU_BIG_ENDIAN=n # Added to kconfig CONFIG_CPU_LITTLE_ENDIAN=y # Added to kconfig CONFIG_PPC64=y # Added to kconfig CONFIG_PPC_BOOK3E_64=n # Added to kconfig CONFIG_PPC_BOOK3S_64=y # Added to kconfig CONFIG_PPC_DISABLE_WERROR=y # Added to kconfig CONFIG_SECTION_MISMATCH_WARN_ONLY=y # Added to kconfig CONFIG_PREVENT_FIRMWARE_BUILD=y # Added to kconfig CONFIG_LD_HEAD_STUB_CATCH=y # Added to kconfig CONFIG_TRIM_UNUSED_KSYMS=n # Added to kconfig CONFIG_UBSAN=n # < make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig+ppc64le_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig+ppc64le_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig .config:3959:warning: override: reassigning to symbol STANDALONE .config:3961:warning: override: reassigning to symbol MODULE_SIG .config:3964:warning: override: reassigning to symbol PPC64 .config:3968:warning: override: reassigning to symbol SECTION_MISMATCH_WARN_ONLY .config:3969:warning: override: reassigning to symbol PREVENT_FIRMWARE_BUILD .config:3971:warning: override: reassigning to symbol TRIM_UNUSED_KSYMS .config:3972:warning: override: reassigning to symbol UBSAN # make -s -j 120 ARCH=powerpc O=/kisskb/build/powerpc-next-rand_powerpc-randconfig+ppc64le_powerpc-gcc11 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-11.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/powerpc-next-rand_powerpc-randconfig+ppc64le_powerpc-gcc11 # Build took: 0:01:31.359032