Re: linux-next: manual merge of the perf tree with the origin tree

From: Ian Rogers

Date: Thu May 21 2026 - 12:35:51 EST


On Thu, May 21, 2026 at 7:55 AM Thorsten Leemhuis <linux@xxxxxxxxxxxxx> wrote:
>
> On 5/21/26 12:19, Mark Brown wrote:
> >
> > Today's linux-next merge of the perf tree got a conflict in:
> >
> > tools/perf/Makefile.perf
> >
> > between commit:
> >
> > 552636b9317c8 ("perf trace: Add beautifier script for fsmount flags")
> >
> > from the origin tree and commits:
> >
> > 32969ef6e3e19 ("perf build: Pre-generate BPF skeleton tooling during umbrella prepare phase")

I believe this commit has issues with "perf trace: Add beautifier
script for fsmount flags":
https://web.git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools.git/commit/?h=perf-tools&id=552636b9317c8a843dd4496d77e56976ab48c76b
This change went to the perf-tools tree and then to linux/master,
while "perf build: Pre-generate BPF skeleton tooling during umbrella
prepare phase" has gone to perf-tools-next and then to linux-next.
I'll look into a fix.

Thanks,
Ian


> > 537609924c437 ("perf trace beauty: Make beauty generated C code standalone .o files")
> >
> > from the perf tree.
>
> Wonder if something went wrong here, as I ran into a build problem with
> perf today:
>
> """
> > trace/beauty/fsmount.c: In function ‘fsmount__scnprintf_attr_flags’:
> > trace/beauty/fsmount.c:37:10: fatal error: trace/beauty/generated/fsmount_attr_arrays.c: No such file or directory
> > 37 | #include "trace/beauty/generated/fsmount_attr_arrays.c"
> > | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
> > compilation terminated.
> > make[4]: *** [/builddir/build/BUILD/kernel-7.1.0-build/kernel-next-20260521/linux-7.1.0-0.0.next.20260521.432.vanilla.fc45.x86_64/tools/build/Makefile.build:95: trace/beauty/fsmount.o] Error 1
> > make[4]: *** Waiting for unfinished jobs....
> """
>
> Full log:
> https://download.copr.fedorainfracloud.org/results/@kernel-vanilla/next/fedora-rawhide-x86_64/10492250-next-next-all/builder-live.log.gz
>
> Seems Intel's kernel test robot had a similar exprience that was
> bisected to "[7390/7547] Merge branch 'perf-tools-next'" (with a "low
> confidence bisect report"):
> https://lore.kernel.org/all/202605211515.bBZSRAkp-lkp@xxxxxxxxx/
>
> Ciao, Thorsten
>
> > I fixed it up (see below) and can carry the fix as necessary. This
> > is now fixed as far as linux-next is concerned, but any non trivial
> > conflicts should be mentioned to your upstream maintainer when your tree
> > is submitted for merging. You may also want to consider cooperating
> > with the maintainer of the conflicting tree to minimise any particularly
> > complex conflicts.
> >
> > diff --cc tools/perf/Makefile.perf
> > index 76b35ac19acbf,fc92d6ceac5b0..0000000000000
> > --- a/tools/perf/Makefile.perf
> > +++ b/tools/perf/Makefile.perf
> > @@@ -508,232 -509,7 +508,6 @@@ arm64-sysreg-defs-clean
> > $(Q)$(MAKE) -C $(arm64_gen_sysreg_dir) O=$(arm64_gen_sysreg_outdir) \
> > prefix= subdir= clean > /dev/null
> >
> > - beauty_linux_dir := $(srctree)/tools/perf/trace/beauty/include/linux/
> > - beauty_uapi_linux_dir := $(srctree)/tools/perf/trace/beauty/include/uapi/linux/
> > - beauty_uapi_sound_dir := $(srctree)/tools/perf/trace/beauty/include/uapi/sound/
> > - beauty_arch_asm_dir := $(srctree)/tools/perf/trace/beauty/arch/x86/include/asm/
> > - beauty_x86_arch_asm_uapi_dir := $(srctree)/tools/perf/trace/beauty/arch/x86/include/uapi/asm/
> > -
> > - linux_uapi_dir := $(srctree)/tools/include/uapi/linux
> > - asm_generic_uapi_dir := $(srctree)/tools/include/uapi/asm-generic
> > - arch_asm_uapi_dir := $(srctree)/tools/arch/$(SRCARCH)/include/uapi/asm/
> > - x86_arch_asm_dir := $(srctree)/tools/arch/x86/include/asm/
> > -
> > - beauty_outdir := $(OUTPUT)trace/beauty/generated
> > - beauty_ioctl_outdir := $(beauty_outdir)/ioctl
> > -
> > - # Create output directory if not already present
> > - $(shell [ -d '$(beauty_ioctl_outdir)' ] || mkdir -p '$(beauty_ioctl_outdir)')
> > -
> > - syscall_array := $(beauty_outdir)/syscalltbl.c
> > - syscall_tbl := $(srctree)/tools/perf/trace/beauty/syscalltbl.sh
> > - syscall_tbl_data := $(srctree)/tools/scripts/syscall.tbl \
> > - $(wildcard $(srctree)/tools/perf/arch/*/entry/syscalls/syscall*.tbl)
> > -
> > - $(syscall_array): $(syscall_tbl) $(syscall_tbl_data)
> > - $(Q)$(SHELL) '$(syscall_tbl)' $(srctree)/tools $@
> > -
> > - fs_at_flags_array := $(beauty_outdir)/fs_at_flags_array.c
> > - fs_at_flags_tbl := $(srctree)/tools/perf/trace/beauty/fs_at_flags.sh
> > -
> > - $(fs_at_flags_array): $(beauty_uapi_linux_dir)/fcntl.h $(fs_at_flags_tbl)
> > - $(Q)$(SHELL) '$(fs_at_flags_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - clone_flags_array := $(beauty_outdir)/clone_flags_array.c
> > - clone_flags_tbl := $(srctree)/tools/perf/trace/beauty/clone.sh
> > -
> > - $(clone_flags_array): $(beauty_uapi_linux_dir)/sched.h $(clone_flags_tbl)
> > - $(Q)$(SHELL) '$(clone_flags_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - drm_ioctl_array := $(beauty_ioctl_outdir)/drm_ioctl_array.c
> > - drm_hdr_dir := $(srctree)/tools/perf/trace/beauty/include/uapi/drm
> > - drm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/drm_ioctl.sh
> > -
> > - $(drm_ioctl_array): $(drm_hdr_dir)/drm.h $(drm_hdr_dir)/i915_drm.h $(drm_ioctl_tbl)
> > - $(Q)$(SHELL) '$(drm_ioctl_tbl)' $(drm_hdr_dir) > $@
> > -
> > - fadvise_advice_array := $(beauty_outdir)/fadvise_advice_array.c
> > - fadvise_advice_tbl := $(srctree)/tools/perf/trace/beauty/fadvise.sh
> > -
> > - $(fadvise_advice_array): $(beauty_uapi_linux_dir)/fadvise.h $(fadvise_advice_tbl)
> > - $(Q)$(SHELL) '$(fadvise_advice_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - fsmount_arrays := $(beauty_outdir)/fsmount_arrays.c
> > - fsmount_tbls := $(srctree)/tools/perf/trace/beauty/fsmount.sh
> > -
> > - $(fsmount_arrays): $(beauty_uapi_linux_dir)/mount.h $(fsmount_tbls)
> > - $(Q)$(SHELL) '$(fsmount_tbls)' $(beauty_uapi_linux_dir) > $@
> > -
> > - fsmount_attr_arrays := $(beauty_outdir)/fsmount_attr_arrays.c
> > - fsmount_attr_tbls := $(srctree)/tools/perf/trace/beauty/fsmount_attr.sh
> > -
> > - $(fsmount_attr_arrays): $(beauty_uapi_linux_dir)/mount.h $(fsmount_attr_tbls)
> > - $(Q)$(SHELL) '$(fsmount_attr_tbls)' $(beauty_uapi_linux_dir) > $@
> > -
> > - fspick_arrays := $(beauty_outdir)/fspick_arrays.c
> > - fspick_tbls := $(srctree)/tools/perf/trace/beauty/fspick.sh
> > -
> > - $(fspick_arrays): $(beauty_uapi_linux_dir)/mount.h $(fspick_tbls)
> > - $(Q)$(SHELL) '$(fspick_tbls)' $(beauty_uapi_linux_dir) > $@
> > -
> > - fsconfig_arrays := $(beauty_outdir)/fsconfig_arrays.c
> > - fsconfig_tbls := $(srctree)/tools/perf/trace/beauty/fsconfig.sh
> > -
> > - $(fsconfig_arrays): $(beauty_uapi_linux_dir)/mount.h $(fsconfig_tbls)
> > - $(Q)$(SHELL) '$(fsconfig_tbls)' $(beauty_uapi_linux_dir) > $@
> > -
> > - pkey_alloc_access_rights_array := $(beauty_outdir)/pkey_alloc_access_rights_array.c
> > - asm_generic_hdr_dir := $(srctree)/tools/include/uapi/asm-generic/
> > - pkey_alloc_access_rights_tbl := $(srctree)/tools/perf/trace/beauty/pkey_alloc_access_rights.sh
> > -
> > - $(pkey_alloc_access_rights_array): $(asm_generic_hdr_dir)/mman-common.h $(pkey_alloc_access_rights_tbl)
> > - $(Q)$(SHELL) '$(pkey_alloc_access_rights_tbl)' $(asm_generic_hdr_dir) > $@
> > -
> > - sndrv_ctl_ioctl_array := $(beauty_ioctl_outdir)/sndrv_ctl_ioctl_array.c
> > - sndrv_ctl_hdr_dir := $(srctree)/tools/include/uapi/sound
> > - sndrv_ctl_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/sndrv_ctl_ioctl.sh
> > -
> > - $(sndrv_ctl_ioctl_array): $(beauty_uapi_sound_dir)/asound.h $(sndrv_ctl_ioctl_tbl)
> > - $(Q)$(SHELL) '$(sndrv_ctl_ioctl_tbl)' $(beauty_uapi_sound_dir) > $@
> > -
> > - sndrv_pcm_ioctl_array := $(beauty_ioctl_outdir)/sndrv_pcm_ioctl_array.c
> > - sndrv_pcm_hdr_dir := $(srctree)/tools/include/uapi/sound
> > - sndrv_pcm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/sndrv_pcm_ioctl.sh
> > -
> > - $(sndrv_pcm_ioctl_array): $(beauty_uapi_sound_dir)/asound.h $(sndrv_pcm_ioctl_tbl)
> > - $(Q)$(SHELL) '$(sndrv_pcm_ioctl_tbl)' $(beauty_uapi_sound_dir) > $@
> > -
> > - kcmp_type_array := $(beauty_outdir)/kcmp_type_array.c
> > - kcmp_hdr_dir := $(srctree)/tools/include/uapi/linux/
> > - kcmp_type_tbl := $(srctree)/tools/perf/trace/beauty/kcmp_type.sh
> > -
> > - $(kcmp_type_array): $(kcmp_hdr_dir)/kcmp.h $(kcmp_type_tbl)
> > - $(Q)$(SHELL) '$(kcmp_type_tbl)' $(kcmp_hdr_dir) > $@
> > -
> > - kvm_ioctl_array := $(beauty_ioctl_outdir)/kvm_ioctl_array.c
> > - kvm_hdr_dir := $(srctree)/tools/include/uapi/linux
> > - kvm_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/kvm_ioctl.sh
> > -
> > - $(kvm_ioctl_array): $(kvm_hdr_dir)/kvm.h $(kvm_ioctl_tbl)
> > - $(Q)$(SHELL) '$(kvm_ioctl_tbl)' $(kvm_hdr_dir) > $@
> > -
> > - socket_arrays := $(beauty_outdir)/socket.c
> > - socket_tbl := $(srctree)/tools/perf/trace/beauty/socket.sh
> > -
> > - $(socket_arrays): $(linux_uapi_dir)/in.h $(beauty_linux_dir)/socket.h $(socket_tbl)
> > - $(Q)$(SHELL) '$(socket_tbl)' $(linux_uapi_dir) $(beauty_linux_dir) > $@
> > -
> > - sockaddr_arrays := $(beauty_outdir)/sockaddr.c
> > - sockaddr_tbl := $(srctree)/tools/perf/trace/beauty/sockaddr.sh
> > -
> > - $(sockaddr_arrays): $(beauty_linux_dir)/socket.h $(sockaddr_tbl)
> > - $(Q)$(SHELL) '$(sockaddr_tbl)' $(beauty_linux_dir) > $@
> > -
> > - vhost_virtio_ioctl_array := $(beauty_ioctl_outdir)/vhost_virtio_ioctl_array.c
> > - vhost_virtio_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/vhost_virtio_ioctl.sh
> > -
> > - $(vhost_virtio_ioctl_array): $(beauty_uapi_linux_dir)/vhost.h $(vhost_virtio_ioctl_tbl)
> > - $(Q)$(SHELL) '$(vhost_virtio_ioctl_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - perf_ioctl_array := $(beauty_ioctl_outdir)/perf_ioctl_array.c
> > - perf_hdr_dir := $(srctree)/tools/include/uapi/linux
> > - perf_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/perf_ioctl.sh
> > -
> > - $(perf_ioctl_array): $(perf_hdr_dir)/perf_event.h $(perf_ioctl_tbl)
> > - $(Q)$(SHELL) '$(perf_ioctl_tbl)' $(perf_hdr_dir) > $@
> > -
> > - madvise_behavior_array := $(beauty_outdir)/madvise_behavior_array.c
> > - madvise_hdr_dir := $(srctree)/tools/include/uapi/asm-generic/
> > - madvise_behavior_tbl := $(srctree)/tools/perf/trace/beauty/madvise_behavior.sh
> > -
> > - $(madvise_behavior_array): $(madvise_hdr_dir)/mman-common.h $(madvise_behavior_tbl)
> > - $(Q)$(SHELL) '$(madvise_behavior_tbl)' $(madvise_hdr_dir) > $@
> > -
> > - mmap_flags_array := $(beauty_outdir)/mmap_flags_array.c
> > - mmap_flags_tbl := $(srctree)/tools/perf/trace/beauty/mmap_flags.sh
> > -
> > - $(mmap_flags_array): $(linux_uapi_dir)/mman.h $(asm_generic_uapi_dir)/mman.h $(asm_generic_uapi_dir)/mman-common.h $(mmap_flags_tbl)
> > - $(Q)$(SHELL) '$(mmap_flags_tbl)' $(linux_uapi_dir) $(asm_generic_uapi_dir) $(arch_asm_uapi_dir) > $@
> > -
> > - mremap_flags_array := $(beauty_outdir)/mremap_flags_array.c
> > - mremap_flags_tbl := $(srctree)/tools/perf/trace/beauty/mremap_flags.sh
> > -
> > - $(mremap_flags_array): $(linux_uapi_dir)/mman.h $(mremap_flags_tbl)
> > - $(Q)$(SHELL) '$(mremap_flags_tbl)' $(linux_uapi_dir) > $@
> > -
> > - mount_flags_array := $(beauty_outdir)/mount_flags_array.c
> > - mount_flags_tbl := $(srctree)/tools/perf/trace/beauty/mount_flags.sh
> > -
> > - $(mount_flags_array): $(beauty_uapi_linux_dir)/mount.h $(mount_flags_tbl)
> > - $(Q)$(SHELL) '$(mount_flags_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - move_mount_flags_array := $(beauty_outdir)/move_mount_flags_array.c
> > - move_mount_flags_tbl := $(srctree)/tools/perf/trace/beauty/move_mount_flags.sh
> > -
> > - $(move_mount_flags_array): $(beauty_uapi_linux_dir)/mount.h $(move_mount_flags_tbl)
> > - $(Q)$(SHELL) '$(move_mount_flags_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - mmap_prot_array := $(beauty_outdir)/mmap_prot_array.c
> > - mmap_prot_tbl := $(srctree)/tools/perf/trace/beauty/mmap_prot.sh
> > -
> > - $(mmap_prot_array): $(asm_generic_uapi_dir)/mman.h $(asm_generic_uapi_dir)/mman-common.h $(mmap_prot_tbl)
> > - $(Q)$(SHELL) '$(mmap_prot_tbl)' $(asm_generic_uapi_dir) $(arch_asm_uapi_dir) > $@
> > -
> > - prctl_option_array := $(beauty_outdir)/prctl_option_array.c
> > - prctl_option_tbl := $(srctree)/tools/perf/trace/beauty/prctl_option.sh
> > -
> > - $(prctl_option_array): $(beauty_uapi_linux_dir)/prctl.h $(prctl_option_tbl)
> > - $(Q)$(SHELL) '$(prctl_option_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - usbdevfs_ioctl_array := $(beauty_ioctl_outdir)/usbdevfs_ioctl_array.c
> > - usbdevfs_ioctl_tbl := $(srctree)/tools/perf/trace/beauty/usbdevfs_ioctl.sh
> > -
> > - $(usbdevfs_ioctl_array): $(beauty_uapi_linux_dir)/usbdevice_fs.h $(usbdevfs_ioctl_tbl)
> > - $(Q)$(SHELL) '$(usbdevfs_ioctl_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - x86_arch_prctl_code_array := $(beauty_outdir)/x86_arch_prctl_code_array.c
> > - x86_arch_prctl_code_tbl := $(srctree)/tools/perf/trace/beauty/x86_arch_prctl.sh
> > -
> > - $(x86_arch_prctl_code_array): $(beauty_x86_arch_asm_uapi_dir)/prctl.h $(x86_arch_prctl_code_tbl)
> > - $(Q)$(SHELL) '$(x86_arch_prctl_code_tbl)' $(beauty_x86_arch_asm_uapi_dir) > $@
> > -
> > - x86_arch_irq_vectors_array := $(beauty_outdir)/x86_arch_irq_vectors_array.c
> > - x86_arch_irq_vectors_tbl := $(srctree)/tools/perf/trace/beauty/tracepoints/x86_irq_vectors.sh
> > -
> > - $(x86_arch_irq_vectors_array): $(beauty_arch_asm_dir)/irq_vectors.h $(x86_arch_irq_vectors_tbl)
> > - $(Q)$(SHELL) '$(x86_arch_irq_vectors_tbl)' $(beauty_arch_asm_dir) > $@
> > -
> > - x86_arch_MSRs_array := $(beauty_outdir)/x86_arch_MSRs_array.c
> > - x86_arch_MSRs_tbl := $(srctree)/tools/perf/trace/beauty/tracepoints/x86_msr.sh
> > -
> > - $(x86_arch_MSRs_array): $(x86_arch_asm_dir)/msr-index.h $(x86_arch_MSRs_tbl)
> > - $(Q)$(SHELL) '$(x86_arch_MSRs_tbl)' $(x86_arch_asm_dir) > $@
> > -
> > - rename_flags_array := $(beauty_outdir)/rename_flags_array.c
> > - rename_flags_tbl := $(srctree)/tools/perf/trace/beauty/rename_flags.sh
> > -
> > - $(rename_flags_array): $(beauty_uapi_linux_dir)/fs.h $(rename_flags_tbl)
> > - $(Q)$(SHELL) '$(rename_flags_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - arch_errno_name_array := $(beauty_outdir)/arch_errno_name_array.c
> > - arch_errno_hdr_dir := $(srctree)/tools
> > - arch_errno_tbl := $(srctree)/tools/perf/trace/beauty/arch_errno_names.sh
> > -
> > - $(arch_errno_name_array): $(arch_errno_tbl)
> > - $(Q)$(SHELL) '$(arch_errno_tbl)' '$(patsubst -%,,$(CC))' $(arch_errno_hdr_dir) > $@
> > -
> > - statx_mask_array := $(beauty_outdir)/statx_mask_array.c
> > - statx_mask_tbl := $(srctree)/tools/perf/trace/beauty/statx_mask.sh
> > -
> > - $(statx_mask_array): $(beauty_uapi_linux_dir)/stat.h $(statx_mask_tbl)
> > - $(Q)$(SHELL) '$(statx_mask_tbl)' $(beauty_uapi_linux_dir) > $@
> > -
> > - sync_file_range_arrays := $(beauty_outdir)/sync_file_range_arrays.c
> > - sync_file_range_tbls := $(srctree)/tools/perf/trace/beauty/sync_file_range.sh
> > -
> > - $(sync_file_range_arrays): $(beauty_uapi_linux_dir)/fs.h $(sync_file_range_tbls)
> > - $(Q)$(SHELL) '$(sync_file_range_tbls)' $(beauty_uapi_linux_dir) > $@
> > --
> > TESTS_CORESIGHT_DIR := $(srctree)/tools/perf/tests/shell/coresight
> >
> > tests-coresight-targets: FORCE
>