On Fri, Nov 14, 2014 at 8:06 AM, Hannes Frederic Sowa
[off-list ref] wrote:
On Fr, 2014-11-14 at 07:33 -0800, Alexei Starovoitov wrote:
quoted
On Fri, Nov 14, 2014 at 4:11 AM, Hannes Frederic Sowa
[off-list ref] wrote:
quoted
On Do, 2014-11-13 at 17:36 -0800, Alexei Starovoitov wrote:
quoted
the current meaning of BPF_MAP_UPDATE_ELEM syscall command is:
either update existing map element or create a new one.
Initially the plan was to add a new command to handle the case of
'create new element if it didn't exist', but 'flags' style looks
cleaner and overall diff is much smaller (more code reused), so add 'flags'
attribute to BPF_MAP_UPDATE_ELEM command with the following meaning:
#define BPF_ANY 0 /* create new element or update existing */
#define BPF_NOEXIST 1 /* create new element if it didn't exist */
#define BPF_EXIST 2 /* update existing element */
Would a cmpxchg-alike function be handy here?
you mean cmpxchg command in addition to
update() command ?
May be... it will have an extra 'value' argument
(key, old_value, new_value)
I don't have a use case for it yet though.
I don't neither. ;)
I just wanted to bring this up before user space api might get public
and the additional argument might make problems.
addition of cmpxchg command won't be a problem obviously.
(just another 'new_value' field in existing struct inside bpf_attr union).