Re: [PATCH v3 4/5] alpha: add HAVE_PERF_REGS and HAVE_PERF_USER_STACK_DUMP support

From: Jan-Benedict Glaw

Date: Sun Oct 25 2026 - 20:45:20 EST


Hi,

On Sun, 2026-10-18 10:22:04 -0400, Matt Turner <mattst88@xxxxxxxxx> wrote:
> Let perf sample registers and dump the user stack, which is what the
> perf tool needs for --call-graph dwarf.

After this patch series, it conflicts with previous upstream changes:

[…]
> diff --git a/arch/alpha/kernel/perf_regs.c b/arch/alpha/kernel/perf_regs.c
> new file mode 100644
> index 000000000000..33ea2e831ba0
> --- /dev/null
> +++ b/arch/alpha/kernel/perf_regs.c
> @@ -0,0 +1,64 @@
[…]
> +int perf_reg_validate(u64 mask)
> +{
> + if (!mask || mask & REG_RESERVED)
> + return -EINVAL;
> +
> + return 0;
> +}
[…]

# CC arch/alpha/kernel/perf_regs.o
alpha-linux-gcc -Wp,-MMD,arch/alpha/kernel/.perf_regs.o.d -nostdinc -I./arch/alpha/include -I./arch/alpha/include/generated -I./include -I./include -I./arch/alpha/include/uapi -I./arch/alpha/include/generated/uapi -I./include/uapi -I./include/generated/uapi -include ./include/linux/compiler-version.h -include ./include/linux/kconfig.h -include ./include/linux/compiler_types.h -D__KERNEL__ -fshort-wchar -funsigned-char -fno-common -fno-PIE -fno-strict-aliasing -std=gnu11 -fms-extensions -pipe -mno-fp-regs -ffixed-8 -fno-jump-tables -mcpu=ev56 -mtune=ev6 -Wa,-mev6 -fno-delete-null-pointer-checks -O2 -fno-allow-store-data-races -fno-stack-protector -fno-omit-frame-pointer -fno-optimize-sibling-calls -ftrivial-auto-var-init=zero -fzero-init-padding-bits=all -fno-stack-clash-protection -fdiagnostics-show-context=2 -fstrict-flex-arrays=3 -fno-strict-overflow -fno-stack-check -fconserve-stack -fno-builtin-wcslen -Wall -Wextra -Wundef -Werror=implicit-function-declaration -Werror=implicit-int -Werror=return-type -Werror=strict-prototypes -Wno-format-security -Wno-trigraphs -Wno-frame-address -Wno-address-of-packed-member -Wmissing-declarations -Wmissing-prototypes -Wframe-larger-than=2048 -Wno-main -Wno-type-limits -Wno-dangling-pointer -Wvla-larger-than=1 -Wno-pointer-sign -Wcast-function-type -Wno-unterminated-string-initialization -Wno-array-bounds -Wno-stringop-overflow -Wno-alloc-size-larger-than -Wimplicit-fallthrough=5 -Werror=date-time -Werror=incompatible-pointer-types -Werror=designated-init -Wenum-conversion -Wunused -Wno-unused-but-set-variable -Wno-unused-const-variable -Wno-packed-not-aligned -Wno-format-overflow -Wno-format-truncation -Wno-stringop-truncation -Wno-override-init -Wno-missing-field-initializers -Wno-shift-negative-value -Wno-maybe-uninitialized -Wno-sign-compare -Wno-unused-parameter -g -Wno-sign-compare -DKBUILD_MODFILE='"arch/alpha/kernel/perf_regs"' -DKBUILD_BASENAME='"perf_regs"' -DKBUILD_MODNAME='"perf_regs"' -D__KBUILD_MODNAME=perf_regs -c -o arch/alpha/kernel/perf_regs.o arch/alpha/kernel/perf_regs.c
arch/alpha/kernel/perf_regs.c:46:5: error: conflicting types for 'perf_reg_validate'; have 'int(u64)' {aka 'int(long long unsigned int)'}
46 | int perf_reg_validate(u64 mask)
| ^~~~~~~~~~~~~~~~~
In file included from ./include/linux/perf_event.h:50,
from arch/alpha/kernel/perf_regs.c:4:
./include/linux/perf_regs.h:13:5: note: previous declaration of 'perf_reg_validate' with type 'int(u64, bool)' {aka 'int(long long unsigned int, _Bool)'}
13 | int perf_reg_validate(u64 mask, bool simd_enabled);
| ^~~~~~~~~~~~~~~~~
make[4]: *** [scripts/Makefile.build:290: arch/alpha/kernel/perf_regs.o] Error 1
make[3]: *** [scripts/Makefile.build:551: arch/alpha/kernel] Error 2
make[2]: *** [scripts/Makefile.build:551: arch/alpha] Error 2
make[1]: *** [/home/jenkins/workspace/linux-alpha-alpha-defconfig___3/linux/Makefile:2229: .] Error 2
make: *** [Makefile:248: __sub-make] Error 2

MfG, JBG

--

Attachment: signature.asc
Description: PGP signature