On Thu, Nov 25, 2021 at 04:34:48PM +0800, Yahui Chen wrote:
Suppose we have a map, MAP_A, and the user program does the following:
1. bpf_map_lookup_elem(MAP_A, key, value)
2. change the value
3. bpf_map_update_elem(MAP_A, key, value, FLAG)
At the same time, the kernel's BPF program may also be modifying the value.
Then we have concurrency problems.
This is why we have bpf spinlock. ;)
Therefore, can we add a helper function like compare and swap?
I don't think you can atomically compare and swap values larger than
CPU word size.
Thanks.