• Uros Bizjak's avatar
    x86/percpu: Introduce %rip-relative addressing to PER_CPU_VAR() · 59bec00a
    Uros Bizjak authored
    Introduce x86_64 %rip-relative addressing to the PER_CPU_VAR() macro.
    Instructions using %rip-relative address operand are one byte shorter
    than their absolute address counterparts and are also compatible with
    position independent executable (-fpie) builds. The patch reduces
    code size of a test kernel build by 150 bytes.
    
    The PER_CPU_VAR() macro is intended to be applied to a symbol and should
    not be used with register operands. Introduce the new __percpu macro and
    use it in cmpxchg{8,16}b_emu.S instead.
    
    Also add a missing function comment to this_cpu_cmpxchg8b_emu().
    
    No functional changes intended.
    Signed-off-by: default avatarUros Bizjak <ubizjak@gmail.com>
    Signed-off-by: default avatarIngo Molnar <mingo@kernel.org>
    Cc: linux-kernel@vger.kernel.org
    Cc: Brian Gerst <brgerst@gmail.com>
    Cc: H. Peter Anvin <hpa@zytor.com>
    Cc: Linus Torvalds <torvalds@linux-foundation.org>
    Cc: Sean Christopherson <seanjc@google.com>
    59bec00a
percpu.h 23.4 KB