bpf: optimize bpf_map_update_elem() when element exists
bpf_map_update_elem() is doing new = kmalloc(); kfree(old);
or new = pcpu_freelist_pop(); pcpu_freelist_push(old);
depending on prealloc flag.
Only when map is full 'extra_elems' percpu spare elements were used.
Optimize this logic by always using spare elements when updating existing element.
Note that two bpf_map_update_elem() back to back into the same map
will not wait for rcu grace period.
Signed-off-by: Alexei Starovoitov <ast@kernel.org>
1 file changed