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

Mark Brown posted 1 patch 3 days, 10 hours ago
linux-next: manual merge of the perf tree with the origin tree
Posted by Mark Brown 3 days, 10 hours ago
Hi all,

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")
  537609924c437 ("perf trace beauty: Make beauty generated C code standalone .o files")

from the perf tree.

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
Re: linux-next: manual merge of the perf tree with the origin tree
Posted by Arnaldo Carvalho de Melo 3 days, 3 hours ago
On Thu, May 21, 2026 at 11:19:03AM +0100, Mark Brown wrote:
> Hi all,
> 
> 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")
>   537609924c437 ("perf trace beauty: Make beauty generated C code standalone .o files")
> 
> from the perf tree.
> 
> 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.

I'm fixing this up, the patch below isn't enough, what Ian provided +
the following make it build for me, I'm testing this all and will push
perf-tools-next merged with torvalds/master soon.

- Arnaldo

⬢ [acme@toolbx perf-tools-next]$ git diff
diff --cc tools/perf/builtin-trace.c
index 0730c1d9f0b3adc7,48615ddccd93a1e8..0000000000000000
--- a/tools/perf/builtin-trace.c
+++ b/tools/perf/builtin-trace.c
@@@ -783,11 -771,10 +783,6 @@@ static const char *bpf_cmd[] =
  };
  static DEFINE_STRARRAY(bpf_cmd, "BPF_");

- static const char *fsmount_flags[] = {
-       [1] = "CLOEXEC",
- };
- static DEFINE_STRARRAY(fsmount_flags, "FSMOUNT_");
 -#include "trace/beauty/generated/fsconfig_arrays.c"
 -
 -static DEFINE_STRARRAY(fsconfig_cmds, "FSCONFIG_");
--
  static const char *epoll_ctl_ops[] = { "ADD", "DEL", "MOD", };
  static DEFINE_STRARRAY_OFFSET(epoll_ctl_ops, "EPOLL_CTL_", 1);

⬢ [acme@toolbx perf-tools-next]$

 
> 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


Re: linux-next: manual merge of the perf tree with the origin tree
Posted by Thorsten Leemhuis 3 days, 5 hours ago
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")
>   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@intel.com/

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

Re: linux-next: manual merge of the perf tree with the origin tree
Posted by Ian Rogers 3 days, 5 hours ago
On Thu, May 21, 2026 at 7:55 AM Thorsten Leemhuis <linux@leemhuis.info> 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@intel.com/
>
> 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
>
Re: linux-next: manual merge of the perf tree with the origin tree
Posted by Mark Brown 3 days, 5 hours ago
On Thu, May 21, 2026 at 08:04:11AM -0700, Ian Rogers wrote:
> On Thu, May 21, 2026 at 7:55 AM Thorsten Leemhuis <linux@leemhuis.info> wrote:
> > On 5/21/26 12:19, Mark Brown wrote:

> > > 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.

Yes, that's exactly the conflict I identified above - the lack of
coordination there was pretty surprising TBH, and also the fact that
552636b9317c8 ("perf trace: Add beautifier script for fsmount flags")
went in after -rc1.
Re: linux-next: manual merge of the perf tree with the origin tree
Posted by Ian Rogers 3 days, 4 hours ago
On Thu, May 21, 2026 at 8:31 AM Mark Brown <broonie@kernel.org> wrote:
>
> On Thu, May 21, 2026 at 08:04:11AM -0700, Ian Rogers wrote:
> > On Thu, May 21, 2026 at 7:55 AM Thorsten Leemhuis <linux@leemhuis.info> wrote:
> > > On 5/21/26 12:19, Mark Brown wrote:
>
> > > > 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.
>
> Yes, that's exactly the conflict I identified above - the lack of
> coordination there was pretty surprising TBH, and also the fact that
> 552636b9317c8 ("perf trace: Add beautifier script for fsmount flags")
> went in after -rc1.

So I sent the fix:
https://lore.kernel.org/lkml/20260521153558.1421014-1-irogers@google.com/
I'm pretty oblivious to the ins and outs of merging, but hopefully,
you can work with the fix and the commit message.

How this happened: after the initial perf-tools PR for v7.1 Arnaldo
and Namhyung prepared a fixes PR, a large part of which involved
syncing kernel headers between the regular kernel include and
tools/include. That sync exposed a bug in the "beautifier" scripts
(caught by Sashiko) that scrape data from header files for "perf
trace" an strace like command that displays values for syscall
parameters, not just numbers. Namhyung wrote a fix along with the
header file merge and put it into the perf-tools branch for the PR.

Anyway, I think the issue was that perf-tools-next wasn't up-to-date
with linux/master and therefore didn't include Namhyung's change. I
think we can do better in the future but there were good intentions
all around. Sorry for the breakage.

Thanks,
Ian
Re: linux-next: manual merge of the perf tree with the origin tree
Posted by Namhyung Kim 3 days, 3 hours ago
On Thu, May 21, 2026 at 08:44:00AM -0700, Ian Rogers wrote:
> On Thu, May 21, 2026 at 8:31 AM Mark Brown <broonie@kernel.org> wrote:
> >
> > On Thu, May 21, 2026 at 08:04:11AM -0700, Ian Rogers wrote:
> > > On Thu, May 21, 2026 at 7:55 AM Thorsten Leemhuis <linux@leemhuis.info> wrote:
> > > > On 5/21/26 12:19, Mark Brown wrote:
> >
> > > > > 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.
> >
> > Yes, that's exactly the conflict I identified above - the lack of
> > coordination there was pretty surprising TBH, and also the fact that
> > 552636b9317c8 ("perf trace: Add beautifier script for fsmount flags")
> > went in after -rc1.
> 
> So I sent the fix:
> https://lore.kernel.org/lkml/20260521153558.1421014-1-irogers@google.com/
> I'm pretty oblivious to the ins and outs of merging, but hopefully,
> you can work with the fix and the commit message.
> 
> How this happened: after the initial perf-tools PR for v7.1 Arnaldo
> and Namhyung prepared a fixes PR, a large part of which involved
> syncing kernel headers between the regular kernel include and
> tools/include. That sync exposed a bug in the "beautifier" scripts
> (caught by Sashiko) that scrape data from header files for "perf
> trace" an strace like command that displays values for syscall
> parameters, not just numbers. Namhyung wrote a fix along with the
> header file merge and put it into the perf-tools branch for the PR.

Right, thanks for the explanation.

> 
> Anyway, I think the issue was that perf-tools-next wasn't up-to-date
> with linux/master and therefore didn't include Namhyung's change. I
> think we can do better in the future but there were good intentions
> all around. Sorry for the breakage.

Normally we merge perf-tools fixes after it's applied to Linus' tree and
it used to have no problems.  This time we have conflicting changes and
it's found thanks to linux-next continuous integration.

And sorry for unsmooth handling of the conflict.  I should've noticed
you as I see there would be some conflicts.

Thanks,
Namhyung

Re: linux-next: manual merge of the perf tree with the origin tree
Posted by Ian Rogers 3 days, 4 hours ago
On Thu, May 21, 2026 at 8:31 AM Mark Brown <broonie@kernel.org> wrote:
>
> On Thu, May 21, 2026 at 08:04:11AM -0700, Ian Rogers wrote:
> > On Thu, May 21, 2026 at 7:55 AM Thorsten Leemhuis <linux@leemhuis.info> wrote:
> > > On 5/21/26 12:19, Mark Brown wrote:
>
> > > > 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.
>
> Yes, that's exactly the conflict I identified above - the lack of
> coordination there was pretty surprising TBH, and also the fact that
> 552636b9317c8 ("perf trace: Add beautifier script for fsmount flags")
> went in after -rc1.

You're right, I'm only just waking up :-) I'm about to send the fix.

Thanks,
Ian
[PATCH v1] perf build: Fix fsmount.o build
Posted by Ian Rogers 3 days, 4 hours ago
A merge conflict between:
commit 552636b9317c8 ("perf trace: Add beautifier script for fsmount flags")
commit 32969ef6e3e19 ("perf build: Pre-generate BPF skeleton tooling during umbrella prepare phase")
Resulted in a missed build dependency in the merge:
commit 61da860eee07 Merge branch 'perf-tools-next' of https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git

Fix the build by adding the necessary build dependencies.

Signed-off-by: Ian Rogers <irogers@google.com>
---
 tools/perf/trace/beauty/Build | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/tools/perf/trace/beauty/Build b/tools/perf/trace/beauty/Build
index 93cde93461a3..996e63cdf765 100644
--- a/tools/perf/trace/beauty/Build
+++ b/tools/perf/trace/beauty/Build
@@ -111,6 +111,13 @@ $(fsmount_arrays): $(beauty_uapi_linux_dir)/mount.h $(fsmount_tbls)
 	$(call rule_mkdir)
 	$(Q)$(call echo-cmd,gen)$(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)
+	$(call rule_mkdir)
+	$(Q)$(call echo-cmd,gen)$(SHELL) '$(fsmount_attr_tbls)' $(beauty_uapi_linux_dir) > $@
+
 fspick_arrays := $(beauty_outdir)/fspick_arrays.c
 fspick_tbls := $(srctree)/tools/perf/trace/beauty/fspick.sh
 
@@ -285,7 +292,7 @@ $(OUTPUT)trace/beauty/syscalltbl.o: $(syscall_array)
 $(OUTPUT)trace/beauty/fsconfig.o: $(fsconfig_arrays)
 $(OUTPUT)trace/beauty/clone.o: $(clone_flags_array)
 $(OUTPUT)trace/beauty/fs_at_flags.o: $(fs_at_flags_array)
-$(OUTPUT)trace/beauty/fsmount.o: $(fsmount_arrays)
+$(OUTPUT)trace/beauty/fsmount.o: $(fsmount_arrays) $(fsmount_attr_arrays)
 $(OUTPUT)trace/beauty/fspick.o: $(fspick_arrays)
 $(OUTPUT)trace/beauty/ioctl.o: $(drm_ioctl_array) $(sndrv_pcm_ioctl_array) $(sndrv_ctl_ioctl_array) $(kvm_ioctl_array) $(vhost_virtio_ioctl_array) $(perf_ioctl_array) $(usbdevfs_ioctl_array)
 $(OUTPUT)trace/beauty/kcmp.o: $(kcmp_type_array)
-- 
2.54.0.746.g67dd491aae-goog
Re: [PATCH v1] perf build: Fix fsmount.o build
Posted by Namhyung Kim 3 days, 3 hours ago
Hi Ian,

On Thu, May 21, 2026 at 08:35:58AM -0700, Ian Rogers wrote:
> A merge conflict between:
> commit 552636b9317c8 ("perf trace: Add beautifier script for fsmount flags")
> commit 32969ef6e3e19 ("perf build: Pre-generate BPF skeleton tooling during umbrella prepare phase")
> Resulted in a missed build dependency in the merge:
> commit 61da860eee07 Merge branch 'perf-tools-next' of https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git
> 
> Fix the build by adding the necessary build dependencies.

Thanks for fixing this.  I believe the right fix would be to merge
perf-tools into perf-tools-next with this resolution.

Thanks,
Namhyung

> 
> Signed-off-by: Ian Rogers <irogers@google.com>
> ---
>  tools/perf/trace/beauty/Build | 9 ++++++++-
>  1 file changed, 8 insertions(+), 1 deletion(-)
> 
> diff --git a/tools/perf/trace/beauty/Build b/tools/perf/trace/beauty/Build
> index 93cde93461a3..996e63cdf765 100644
> --- a/tools/perf/trace/beauty/Build
> +++ b/tools/perf/trace/beauty/Build
> @@ -111,6 +111,13 @@ $(fsmount_arrays): $(beauty_uapi_linux_dir)/mount.h $(fsmount_tbls)
>  	$(call rule_mkdir)
>  	$(Q)$(call echo-cmd,gen)$(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)
> +	$(call rule_mkdir)
> +	$(Q)$(call echo-cmd,gen)$(SHELL) '$(fsmount_attr_tbls)' $(beauty_uapi_linux_dir) > $@
> +
>  fspick_arrays := $(beauty_outdir)/fspick_arrays.c
>  fspick_tbls := $(srctree)/tools/perf/trace/beauty/fspick.sh
>  
> @@ -285,7 +292,7 @@ $(OUTPUT)trace/beauty/syscalltbl.o: $(syscall_array)
>  $(OUTPUT)trace/beauty/fsconfig.o: $(fsconfig_arrays)
>  $(OUTPUT)trace/beauty/clone.o: $(clone_flags_array)
>  $(OUTPUT)trace/beauty/fs_at_flags.o: $(fs_at_flags_array)
> -$(OUTPUT)trace/beauty/fsmount.o: $(fsmount_arrays)
> +$(OUTPUT)trace/beauty/fsmount.o: $(fsmount_arrays) $(fsmount_attr_arrays)
>  $(OUTPUT)trace/beauty/fspick.o: $(fspick_arrays)
>  $(OUTPUT)trace/beauty/ioctl.o: $(drm_ioctl_array) $(sndrv_pcm_ioctl_array) $(sndrv_ctl_ioctl_array) $(kvm_ioctl_array) $(vhost_virtio_ioctl_array) $(perf_ioctl_array) $(usbdevfs_ioctl_array)
>  $(OUTPUT)trace/beauty/kcmp.o: $(kcmp_type_array)
> -- 
> 2.54.0.746.g67dd491aae-goog
>
Re: [PATCH v1] perf build: Fix fsmount.o build
Posted by Mark Brown 3 days, 4 hours ago
On Thu, May 21, 2026 at 08:35:58AM -0700, Ian Rogers wrote:
> A merge conflict between:
> commit 552636b9317c8 ("perf trace: Add beautifier script for fsmount flags")
> commit 32969ef6e3e19 ("perf build: Pre-generate BPF skeleton tooling during umbrella prepare phase")
> Resulted in a missed build dependency in the merge:
> commit 61da860eee07 Merge branch 'perf-tools-next' of https://git.kernel.org/pub/scm/linux/kernel/git/perf/perf-tools-next.git

I'll add this into -next tomorrow as part of the fixup.