On Mon, Jul 28, 2025 at 09:41:35AM +0100, Alan J. Wylie wrote:
#regzbot introduced: 6.15.8..6.16
Linus Torvalds torvalds@linux-foundation.org writes:
It's Sunday afternoon, and the release cycle has come to an end. Last week was nice and calm, and there were no big show-stopper surprises to keep us from the regular schedule, so I've tagged and pushed out 6.16 as planned.
Even after a "make mrproper" and "git clean -fxd" I'm seeing lots of warnings and errors.
can't find jump dest instruction stack state mismatch return with modified stack frame objtool: can't decode instruction can't find starting instruction
gcc (Gentoo Hardened 14.3.0 p8) 14.3.0
I selected "Y" to the new config option "X86_NATIVE_CPU"
CPU is AMD FX-8350
.config attached
The problem is likely that CONFIG_X86_NATIVE_CPU is using some AMD-specific instruction(s) which objtool doesn't know how to decode.
Building with KCFLAGS="-march=bdver2", I see the following:
0000000000000150 <amd_uncore_df_ctx_scan>: 150: f3 0f 1e fa endbr64 154: e8 00 00 00 00 call 159 <amd_uncore_df_ctx_scan+0x9> 155: R_X86_64_PLT32 __fentry__-0x4 159: 48 8b 05 00 00 00 00 mov 0x0(%rip),%rax # 160 <amd_uncore_df_ctx_scan+0x10> 15c: R_X86_64_PC32 boot_cpu_data+0x2c 160: a9 00 00 00 01 test $0x1000000,%eax 165: 74 64 je 1cb <amd_uncore_df_ctx_scan+0x7b> 167: 48 c7 c0 00 00 00 00 mov $0x0,%rax 16a: R_X86_64_32S cpu_info 16e: 89 f6 mov %esi,%esi 170: 53 push %rbx 171: 83 3d 00 00 00 00 01 cmpl $0x1,0x0(%rip) # 178 <amd_uncore_df_ctx_scan+0x28> 173: R_X86_64_PC32 .bss-0x5 178: 48 8b 0c f5 00 00 00 00 mov 0x0(,%rsi,8),%rcx 17c: R_X86_64_32S __per_cpu_offset 180: 49 89 f9 mov %rdi,%r9 183: 44 8b 84 01 ec 00 00 00 mov 0xec(%rcx,%rax,1),%r8d 18b: b8 04 00 00 00 mov $0x4,%eax 190: 7e 1a jle 1ac <amd_uncore_df_ctx_scan+0x5c> 192: b8 22 00 00 80 mov $0x80000022,%eax 197: 31 c9 xor %ecx,%ecx 199: 0f a2 cpuid 19b: 48 8b 0c f5 00 00 00 00 mov 0x0(,%rsi,8),%rcx 19f: R_X86_64_32S __per_cpu_offset 1a3: 8f ea 78 10 c3 0a 06 00 00 bextr $0x60a,%ebx,%eax 1ac: 0f b6 c0 movzbl %al,%eax 1af: 45 0f b6 c0 movzbl %r8b,%r8d 1b3: 49 8b 11 mov (%r9),%rdx 1b6: 49 c1 e0 30 shl $0x30,%r8 1ba: 48 c1 e0 20 shl $0x20,%rax 1be: 4c 09 c0 or %r8,%rax 1c1: 48 89 04 0a mov %rax,(%rdx,%rcx,1) 1c5: 5b pop %rbx 1c6: e9 00 00 00 00 jmp 1cb <amd_uncore_df_ctx_scan+0x7b> 1c7: R_X86_64_PLT32 __x86_return_thunk-0x4 1cb: e9 00 00 00 00 jmp 1d0 <amd_uncore_l3_event_init> 1cc: R_X86_64_PLT32 __x86_return_thunk-0x4
I don't have time to look at this for at least the next few days, but I suspect this one:
1a3: 8f ea 78 10 c3 0a 06 00 00 bextr $0x60a,%ebx,%eax
in which case the kernel's x86 decoder (which objtool also uses) needs to be updated.