# git gc Expanding reachable commits in commit graph: 78407 Expanding reachable commits in commit graph: 174047 Expanding reachable commits in commit graph: 268776 Expanding reachable commits in commit graph: 370495 Expanding reachable commits in commit graph: 474863 Expanding reachable commits in commit graph: 571327 Expanding reachable commits in commit graph: 681099 Expanding reachable commits in commit graph: 793380 Expanding reachable commits in commit graph: 908455 Expanding reachable commits in commit graph: 1028327 Expanding reachable commits in commit graph: 1123936 Expanding reachable commits in commit graph: 1200580, done. Writing out commit graph in 4 passes: 60% (2926503/4802320) Writing out commit graph in 4 passes: 61% (2929416/4802320) Writing out commit graph in 4 passes: 62% (2977439/4802320) Writing out commit graph in 4 passes: 63% (3025462/4802320) Writing out commit graph in 4 passes: 64% (3073485/4802320) Writing out commit graph in 4 passes: 65% (3121508/4802320) Writing out commit graph in 4 passes: 66% (3169532/4802320) Writing out commit graph in 4 passes: 67% (3217555/4802320) Writing out commit graph in 4 passes: 68% (3265578/4802320) Writing out commit graph in 4 passes: 69% (3313601/4802320) Writing out commit graph in 4 passes: 70% (3361624/4802320) Writing out commit graph in 4 passes: 71% (3409648/4802320) Writing out commit graph in 4 passes: 72% (3457671/4802320) Writing out commit graph in 4 passes: 73% (3505694/4802320) Writing out commit graph in 4 passes: 73% (3550447/4802320) Writing out commit graph in 4 passes: 74% (3553717/4802320) Writing out commit graph in 4 passes: 75% (3601740/4802320) Writing out commit graph in 4 passes: 76% (3649764/4802320) Writing out commit graph in 4 passes: 77% (3697787/4802320) Writing out commit graph in 4 passes: 78% (3745810/4802320) Writing out commit graph in 4 passes: 79% (3793833/4802320) Writing out commit graph in 4 passes: 80% (3841856/4802320) Writing out commit graph in 4 passes: 81% (3889880/4802320) Writing out commit graph in 4 passes: 82% (3937903/4802320) Writing out commit graph in 4 passes: 83% (3985926/4802320) Writing out commit graph in 4 passes: 84% (4033949/4802320) Writing out commit graph in 4 passes: 85% (4081972/4802320) Writing out commit graph in 4 passes: 86% (4129996/4802320) Writing out commit graph in 4 passes: 87% (4178019/4802320) Writing out commit graph in 4 passes: 88% (4226042/4802320) Writing out commit graph in 4 passes: 89% (4274065/4802320) Writing out commit graph in 4 passes: 90% (4322088/4802320) Writing out commit graph in 4 passes: 91% (4370112/4802320) Writing out commit graph in 4 passes: 92% (4418135/4802320) Writing out commit graph in 4 passes: 93% (4466158/4802320) Writing out commit graph in 4 passes: 94% (4514181/4802320) Writing out commit graph in 4 passes: 95% (4562204/4802320) Writing out commit graph in 4 passes: 96% (4610228/4802320) Writing out commit graph in 4 passes: 97% (4658251/4802320) Writing out commit graph in 4 passes: 98% (4706274/4802320) Writing out commit graph in 4 passes: 99% (4754297/4802320) Writing out commit graph in 4 passes: 100% (4802320/4802320) Writing out commit graph in 4 passes: 100% (4802320/4802320), done. # git rev-parse -q --verify d0d283b05eee6a6c51df527e077d513ac2734d95^{commit} d0d283b05eee6a6c51df527e077d513ac2734d95 already have revision, skipping fetch # git checkout -q -f -B kisskb d0d283b05eee6a6c51df527e077d513ac2734d95 # git clean -qxdf # < git log -1 # commit d0d283b05eee6a6c51df527e077d513ac2734d95 # Author: Naveen N Rao # Date: Mon Jun 19 15:17:34 2023 +0530 # # powerpc/ftrace: Add support for -fpatchable-function-entry # # GCC v13.1 updated support for -fpatchable-function-entry on ppc64le to # emit nops after the local entry point, rather than before it. This # allows us to use this in the kernel for ftrace purposes. A new script is # added under arch/powerpc/tools/ to help detect if nops are emitted after # the function local entry point, or before the global entry point. # # With -fpatchable-function-entry, we no longer have the profiling # instructions generated at function entry, so we only need to validate # the presence of two nops at the ftrace location in ftrace_init_nop(). We # patch the preceding instruction with 'mflr r0' to match the # -mprofile-kernel ABI for subsequent ftrace use. # # This changes the profiling instructions used on ppc32. The default -pg # option emits an additional 'stw' instruction after 'mflr r0' and before # the branch to _mcount 'bl _mcount'. This is very similar to the original # -mprofile-kernel implementation on ppc64le, where an additional 'std' # instruction was used to save LR to its save location in the caller's # stackframe. Subsequently, this additional store was removed in later # compiler versions for performance reasons. The same reasons apply for # ppc32 so we only patch in a 'mflr r0'. # # Signed-off-by: Naveen N Rao # Reviewed-by: Christophe Leroy # Signed-off-by: Michael Ellerman # Link: https://msgid.link/68586d22981a2c3bb45f27a2b621173d10a7d092.1687166935.git.naveen@kernel.org # < /opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 d0d283b05eee6a6c51df527e077d513ac2734d95 # make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc64le_defconfig_powerpc-gcc12 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux- ppc64le_defconfig Using /kisskb/src/arch/powerpc/configs/ppc64_defconfig as base Merging /kisskb/src/arch/powerpc/configs/le.config # # merged configuration written to .config (needs make) # # < make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc64le_defconfig_powerpc-gcc12 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc64le_defconfig_powerpc-gcc12 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 32 ARCH=powerpc O=/kisskb/build/powerpc-next_ppc64le_defconfig_powerpc-gcc12 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-12.2.0-nolibc/powerpc64-linux/bin/powerpc64-linux- Completed OK # rm -rf /kisskb/build/powerpc-next_ppc64le_defconfig_powerpc-gcc12 # Build took: 0:06:42.797509