On Thu, Feb 25, 2016 at 08:42:40AM -0800, Alexei Starovoitov wrote: > 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().
OK, just not clear from reading this patch in isolation I suppose.