lkml.org 
[lkml]   [2022]   [Jul]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[patch 12/38] x86/entry: Make sync_regs() invocation a tail call
    Date
    From: Peter Zijlstra <peterz@infradead.org>

    No point in having a call there. Spare the call/ret overhead.

    Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
    Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
    ---
    arch/x86/entry/entry_64.S | 7 ++-----
    1 file changed, 2 insertions(+), 5 deletions(-)

    --- a/arch/x86/entry/entry_64.S
    +++ b/arch/x86/entry/entry_64.S
    @@ -1060,11 +1060,8 @@ SYM_CODE_START_LOCAL(error_entry)
    UNTRAIN_RET

    leaq 8(%rsp), %rdi /* arg0 = pt_regs pointer */
    -.Lerror_entry_from_usermode_after_swapgs:
    -
    /* Put us onto the real thread stack. */
    - call sync_regs
    - RET
    + jmp sync_regs

    /*
    * There are two places in the kernel that can potentially fault with
    @@ -1122,7 +1119,7 @@ SYM_CODE_START_LOCAL(error_entry)
    leaq 8(%rsp), %rdi /* arg0 = pt_regs pointer */
    call fixup_bad_iret
    mov %rax, %rdi
    - jmp .Lerror_entry_from_usermode_after_swapgs
    + jmp sync_regs
    SYM_CODE_END(error_entry)

    SYM_CODE_START_LOCAL(error_return)
    \
     
     \ /
      Last update: 2022-07-17 01:18    [W:2.087 / U:0.564 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site