Re: [PATCH] Revert "x86/unwind/orc: Don't skip the first frame for inactive tasks"

From: Josh Poimboeuf
Date: Thu Aug 04 2022 - 18:06:35 EST


On Thu, Aug 04, 2022 at 03:27:39PM +0800, Chen Zhongjin wrote:
> I believe disassemble show_stack in vmlinux and if we have:
>
>     push   %rbp
>
>     mov    %rsp,%rbp
>
>     ... (no regs pushed to stack)
>
>     callq  <show_trace_log_lvl>
>
> This can be reproduced.

Weird, that's what I have. This is GCC 12.1.

ffffffff81056de0 <show_stack>:
ffffffff81056de0: e8 0b 43 05 00 call ffffffff810ab0f0 <__fentry__>
ffffffff81056de5: 55 push %rbp
ffffffff81056de6: 48 83 05 b2 0f c9 02 01 addq $0x1,0x2c90fb2(%rip) # ffffffff83ce7da0 <__gcov0.show_stack>
ffffffff81056dee: 48 89 e5 mov %rsp,%rbp
ffffffff81056df1: 48 85 ff test %rdi,%rdi
ffffffff81056df4: 74 41 je ffffffff81056e37 <show_stack+0x57>
ffffffff81056df6: 48 85 f6 test %rsi,%rsi
ffffffff81056df9: 0f 85 c2 24 15 01 jne ffffffff821a92c1 <show_stack.cold+0xd>
ffffffff81056dff: 65 48 8b 04 25 c0 bd 01 00 mov %gs:0x1bdc0,%rax
ffffffff81056e08: 48 39 c7 cmp %rax,%rdi
ffffffff81056e0b: 0f 85 a3 24 15 01 jne ffffffff821a92b4 <show_stack.cold>
ffffffff81056e11: 48 83 05 af 0f c9 02 01 addq $0x1,0x2c90faf(%rip) # ffffffff83ce7dc8 <__gcov0.show_stack+0x28>
ffffffff81056e19: 48 89 ee mov %rbp,%rsi
ffffffff81056e1c: 48 89 d1 mov %rdx,%rcx
ffffffff81056e1f: 48 89 f2 mov %rsi,%rdx
ffffffff81056e22: 31 f6 xor %esi,%esi
ffffffff81056e24: e8 8e 20 15 01 call ffffffff821a8eb7 <show_trace_log_lvl>
ffffffff81056e29: 48 83 05 9f 0f c9 02 01 addq $0x1,0x2c90f9f(%rip) # ffffffff83ce7dd0 <__gcov0.show_stack+0x30>
ffffffff81056e31: 5d pop %rbp
ffffffff81056e32: e9 49 b2 5a 01 jmp ffffffff82602080 <__x86_return_thunk>
ffffffff81056e37: 48 83 05 69 0f c9 02 01 addq $0x1,0x2c90f69(%rip) # ffffffff83ce7da8 <__gcov0.show_stack+0x8>
ffffffff81056e3f: 65 48 8b 3c 25 c0 bd 01 00 mov %gs:0x1bdc0,%rdi
ffffffff81056e48: eb ac jmp ffffffff81056df6 <show_stack+0x16>
ffffffff81056e4a: 66 0f 1f 44 00 00 nopw 0x0(%rax,%rax,1)

--
Josh