• Shan Wei's avatar
    net: xfrm: use __this_cpu_read per-cpu helper · f7c83bcb
    Shan Wei authored
    this_cpu_ptr/this_cpu_read is faster than per_cpu_ptr(p, smp_processor_id())
    and can reduce  memory accesses.
    The latter helper needs to find the offset for current cpu,
    and needs more assembler instructions which objdump shows in following.
    
    this_cpu_ptr relocates and address. this_cpu_read() relocates the address
    and performs the fetch. this_cpu_read() saves you more instructions
    since it can do the relocation and the fetch in one instruction.
    
    per_cpu_ptr(p, smp_processor_id()):
      1e:   65 8b 04 25 00 00 00 00         mov    %gs:0x0,%eax
      26:   48 98                           cltq
      28:   31 f6                           xor    %esi,%esi
      2a:   48 c7 c7 00 00 00 00            mov    $0x0,%rdi
      31:   48 8b 04 c5 00 00 00 00         mov    0x0(,%rax,8),%rax
      39:   c7 44 10 04 14 00 00 00         movl   $0x14,0x4(%rax,%rdx,1)
    
    this_cpu_ptr(p)
      1e:   65 48 03 14 25 00 00 00 00      add    %gs:0x0,%rdx
      27:   31 f6                           xor    %esi,%esi
      29:   c7 42 04 14 00 00 00            movl   $0x14,0x4(%rdx)
      30:   48 c7 c7 00 00 00 00            mov    $0x0,%rdi
    Signed-off-by: default avatarShan Wei <davidshan@tencent.com>
    Signed-off-by: default avatarSteffen Klassert <steffen.klassert@secunet.com>
    f7c83bcb
xfrm_ipcomp.c 7.62 KB