# git rev-parse -q --verify 2accfdb7eff65f390c4308b0e9cb7c3fe48ad63c^{commit} 2accfdb7eff65f390c4308b0e9cb7c3fe48ad63c already have revision, skipping fetch # git checkout -q -f -B kisskb 2accfdb7eff65f390c4308b0e9cb7c3fe48ad63c # git clean -qxdf # < git log -1 # commit 2accfdb7eff65f390c4308b0e9cb7c3fe48ad63c # Author: Linus Torvalds # Date: Mon Jul 29 10:58:28 2024 -0700 # # profiling: attempt to remove per-cpu profile flip buffer # # This is the really old legacy kernel profiling code, which has long # since been obviated by "real profiling" (ie 'prof' and company), and # mainly remains as a source of syzbot reports. # # There are anecdotal reports that people still use it for boot-time # profiling, but it's unlikely that such use would care about the old NUMA # optimizations in this code from 2004 (commit ad02973d42: "profile: 512x # Altix timer interrupt livelock fix" in the BK import archive at [1]) # # So in order to head off future syzbot reports, let's try to simplify # this code and get rid of the per-cpu profile buffers that are quite a # large portion of the complexity footprint of this thing (including CPU # hotplug callbacks etc). # # It's unlikely anybody will actually notice, or possibly, as Thomas put # it: "Only people who indulge in nostalgia will notice :)". # # That said, if it turns out that this code is actually actively used by # somebody, we can always revert this removal. Thus the "attempt" in the # summary line. # # [ Note: in a small nod to "the profiling code can cause NUMA problems", # this also removes the "increment the last entry in the profiling array # on any unknown hits" logic. That would account any program counter in # a module to that single counter location, and might exacerbate any # NUMA cacheline bouncing issues ] # # Link: https://lore.kernel.org/all/CAHk-=wgs52BxT4Zjmjz8aNvHWKxf5_ThBY4bYL1Y6CTaNL2dTw@mail.gmail.com/ # Link: https://git.kernel.org/pub/scm/linux/kernel/git/tglx/history.git [1] # Cc: Thomas Gleixner # Cc: Tetsuo Handa # Signed-off-by: Linus Torvalds # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/x86_64-linux/bin/x86_64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/x86_64-linux/bin/x86_64-linux-ld --version # < git log --format=%s --max-count=1 2accfdb7eff65f390c4308b0e9cb7c3fe48ad63c # make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_defconfig_x86_64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/x86_64-linux/bin/x86_64-linux- defconfig # < make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_defconfig_x86_64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/x86_64-linux/bin/x86_64-linux- help # make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_defconfig_x86_64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/x86_64-linux/bin/x86_64-linux- olddefconfig # make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_defconfig_x86_64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/x86_64-linux/bin/x86_64-linux- In file included from /kisskb/src/include/asm-generic/percpu.h:7, from /kisskb/src/arch/x86/include/asm/percpu.h:616, from /kisskb/src/arch/x86/include/asm/preempt.h:6, from /kisskb/src/include/linux/preempt.h:79, from /kisskb/src/include/linux/spinlock.h:56, from /kisskb/src/include/linux/mmzone.h:8, from /kisskb/src/include/linux/gfp.h:7, from /kisskb/src/include/linux/mm.h:7, from /kisskb/src/include/linux/memblock.h:12, from /kisskb/src/kernel/profile.c:20: /kisskb/src/kernel/profile.c:52:28: error: 'cpu_profile_flip' defined but not used [-Werror=unused-variable] 52 | static DEFINE_PER_CPU(int, cpu_profile_flip); | ^~~~~~~~~~~~~~~~ /kisskb/src/include/linux/percpu-defs.h:104:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION' 104 | __PCPU_ATTRS(sec) __typeof__(type) name | ^~~~ /kisskb/src/kernel/profile.c:52:8: note: in expansion of macro 'DEFINE_PER_CPU' 52 | static DEFINE_PER_CPU(int, cpu_profile_flip); | ^~~~~~~~~~~~~~ /kisskb/src/kernel/profile.c:51:48: error: 'cpu_profile_hits' defined but not used [-Werror=unused-variable] 51 | static DEFINE_PER_CPU(struct profile_hit *[2], cpu_profile_hits); | ^~~~~~~~~~~~~~~~ /kisskb/src/include/linux/percpu-defs.h:104:44: note: in definition of macro 'DEFINE_PER_CPU_SECTION' 104 | __PCPU_ATTRS(sec) __typeof__(type) name | ^~~~ /kisskb/src/kernel/profile.c:51:8: note: in expansion of macro 'DEFINE_PER_CPU' 51 | static DEFINE_PER_CPU(struct profile_hit *[2], cpu_profile_hits); | ^~~~~~~~~~~~~~ cc1: all warnings being treated as errors make[4]: *** [/kisskb/src/scripts/Makefile.build:244: kernel/profile.o] Error 1 make[4]: *** Waiting for unfinished jobs.... make[3]: *** [/kisskb/src/scripts/Makefile.build:485: kernel] Error 2 make[3]: *** Waiting for unfinished jobs.... make[2]: *** [/kisskb/src/Makefile:1925: .] Error 2 make[1]: *** [/kisskb/src/Makefile:224: __sub-make] Error 2 make: *** [Makefile:224: __sub-make] Error 2 Command 'make -s -j 160 ARCH=x86_64 O=/kisskb/build/linus_defconfig_x86_64-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/x86_64-linux/bin/x86_64-linux- ' returned non-zero exit status 2. # rm -rf /kisskb/build/linus_defconfig_x86_64-gcc13 # Build took: 0:01:17.871066