On 2/25/16 6:23 AM, Peter Zijlstra wrote:
+ id = hash & (smap->n_buckets - 1);Its not at all clear where the corresponding rcu_read_lock() is at.>+ bucket = rcu_dereference(smap->buckets[id]);
bpf programs of all types are always executing under rcu_read_lock(). This is fundamental for maps and majority of the helpers that's why there is no WARN_ON(rcu_read_lock_held) in this helper, since we already have it in many other places. The rcu_read_lock() for kprobe type is in trace_call_bpf().