This repository has been archived on 2022-02-17. You can view files and clone it, but cannot push or open issues or pull requests.
Shan Wei
f7c83bcbfa
net: xfrm: use __this_cpu_read per-cpu helper
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: Shan Wei <davidshan@tencent.com>
Signed-off-by: Steffen Klassert <steffen.klassert@secunet.com>
|
2012-11-13 14:38:52 +01:00 |
.. |
Kconfig
|
xfrm: make xfrm_algo.c a module
|
2012-05-15 13:13:34 -04:00 |
Makefile
|
xfrm: make xfrm_algo.c a module
|
2012-05-15 13:13:34 -04:00 |
xfrm_algo.c
|
xfrm_algo: drop an unnecessary inclusion
|
2012-05-15 13:13:34 -04:00 |
xfrm_hash.c
|
net: allow GFP_HIGHMEM in __vmalloc()
|
2010-11-21 10:04:04 -08:00 |
xfrm_hash.h
|
net: cleanup unsigned to unsigned int
|
2012-04-15 12:44:40 -04:00 |
xfrm_input.c
|
xfrm: Workaround incompatibility of ESN and async crypto
|
2012-09-04 14:09:45 -04:00 |
xfrm_ipcomp.c
|
net: xfrm: use __this_cpu_read per-cpu helper
|
2012-11-13 14:38:52 +01:00 |
xfrm_output.c
|
xfrm: Remove unused xfrm_state from xfrm_state_check_space
|
2012-03-22 19:29:58 -04:00 |
xfrm_policy.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
|
2012-10-02 13:38:27 -07:00 |
xfrm_proc.c
|
net: Add export.h for EXPORT_SYMBOL/THIS_MODULE to non-modules
|
2011-10-31 19:30:30 -04:00 |
xfrm_replay.c
|
xfrm: remove redundant replay_esn check
|
2012-11-08 12:42:49 +01:00 |
xfrm_state.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
|
2012-10-02 13:38:27 -07:00 |
xfrm_sysctl.c
|
net: Convert all sysctl registrations to register_net_sysctl
|
2012-04-20 21:22:30 -04:00 |
xfrm_user.c
|
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net-next
|
2012-10-02 13:38:27 -07:00 |