# 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/powerpc64-linux/bin/powerpc64-linux-gcc --version # < /opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux-ld --version # < git log --format=%s --max-count=1 2accfdb7eff65f390c4308b0e9cb7c3fe48ad63c # make -s -j 32 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig+NO_SPLPAR_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- pseries_le_defconfig Using /kisskb/src/arch/powerpc/configs/ppc64_defconfig as base Merging /kisskb/src/arch/powerpc/configs/le.config Merging /kisskb/src/arch/powerpc/configs/guest.config Value of CONFIG_VIRTIO_BLK is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_BLK=m New value: CONFIG_VIRTIO_BLK=y Value of CONFIG_SCSI_VIRTIO is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_SCSI_VIRTIO=m New value: CONFIG_SCSI_VIRTIO=y Value of CONFIG_VIRTIO_NET is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_NET=m New value: CONFIG_VIRTIO_NET=y Value of CONFIG_VIRTIO_CONSOLE is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_CONSOLE=m New value: CONFIG_VIRTIO_CONSOLE=y Value of CONFIG_VIRTIO_PCI is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_PCI=m New value: CONFIG_VIRTIO_PCI=y Value of CONFIG_VIRTIO_BALLOON is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VIRTIO_BALLOON=m New value: CONFIG_VIRTIO_BALLOON=y Value of CONFIG_VHOST_NET is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_VHOST_NET=m New value: CONFIG_VHOST_NET=y Value of CONFIG_IBMVETH is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_IBMVETH=m New value: CONFIG_IBMVETH=y Value of CONFIG_IBMVNIC is redefined by fragment /kisskb/src/arch/powerpc/configs/guest.config: Previous value: CONFIG_IBMVNIC=m New value: CONFIG_IBMVNIC=y Merging /kisskb/src/arch/powerpc/configs/kvm_guest.config # # merged configuration written to .config (needs make) # # Added to kconfig CONFIG_PPC_SPLPAR=n # < make -s -j 32 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig+NO_SPLPAR_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- help # make -s -j 32 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig+NO_SPLPAR_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- olddefconfig # make -s -j 32 ARCH=powerpc O=/kisskb/build/linus_pseries_le_defconfig+NO_SPLPAR_powerpc-gcc13 CROSS_COMPILE=/opt/cross/kisskb/korg/gcc-13.1.0-nolibc/powerpc64-linux/bin/powerpc64-linux- In file included from /kisskb/src/include/asm-generic/percpu.h:7, from /kisskb/src/arch/powerpc/include/asm/percpu.h:28, from /kisskb/src/include/linux/irqflags.h:19, from /kisskb/src/include/linux/spinlock.h:59, 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: warning: 'cpu_profile_flip' defined but not used [-Wunused-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: warning: 'cpu_profile_hits' defined but not used [-Wunused-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); | ^~~~~~~~~~~~~~ Completed OK # rm -rf /kisskb/build/linus_pseries_le_defconfig+NO_SPLPAR_powerpc-gcc13 # Build took: 0:03:55.022035