lkml.org 
[lkml]   [2022]   [Nov]   [25]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [Question] About UNWIND_HINT_ENTRY on entry_SYSCALL_64.
On Fri, Nov 25, 2022 at 07:41:46PM +0900, Yun Levi wrote:
> Hello.
>
> While I try to see the information related to ORC in vmlinux,
> I'm trying to find out ORC information related to entry_SYSCALL_64's address.
>
> For this, I've tried to take the following step:
> 1. booting the kernel with the "nokaslr" option.
> 2. Getting ORC information by "objdump orc dump vmlinux"
> 3. cat /proc/kallsyms and check the address of "entry_SYSCALL_64"
> - In my kernel, It's address .text + a00000
> 4. Find out related ORC entry gotten in step 2.
>
> But, I couldn't find the reason why entry_SYSCALL_64's orc info isn't
> encoded with end =1.
> Instead, It was encoded as INVALID ORC entry like:
>
> .text+a00000: sp:(und) bp:(und) type:call end:0
>
> IIUC, Some of the code is started with UNWIND_HINT_ENTRY or UNWIND_HINT_EMPTY,
> it should be encoded with end = 1. But it doesn't.
>
> Am I wrong?

$ readelf -Ws defconfig-build/vmlinux.o | grep entry_SYSCALL_64
178466: 0000000000000029 0 NOTYPE GLOBAL DEFAULT 18 entry_SYSCALL_64_safe_stack
188596: 0000000000000000 422 NOTYPE GLOBAL DEFAULT 18 entry_SYSCALL_64
210374: 0000000000000038 0 NOTYPE GLOBAL DEFAULT 18 entry_SYSCALL_64_after_hwframe

$ readelf -WS defconfig-build/vmlinux.o | grep "\[18\]"
[18] .entry.text PROGBITS 0000000000000000 e59f00 001838 00 AX 0 0 64

$ tools/objtool/objtool --dump=orc defconfig-build/vmlinux.o | grep ".entry.text+0"
.entry.text+0: sp:(und) bp:(und) type:call end:1


\
 
 \ /
  Last update: 2022-11-25 14:07    [W:0.046 / U:0.476 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site