On 02/05/2018 07:17 PM, John Fastabend wrote: > A set of fixes for sockmap to resolve programs referencing sockmaps > and closing without deleting all entries in the map and/or not detaching > BPF programs attached to the map. Both leaving entries in the map and > not detaching programs may result in the map failing to be removed by > BPF infrastructure due to reference counts never reaching zero. > > For this we pull in the ULP infrastructure to hook into the close() > hook of the sock layer. This seemed natural because we have additional > sockmap features (to add support for TX hooks) that will also use the > ULP infrastructure. This allows us to cleanup entries in the map when > socks are closed() and avoid trying to get the sk_state_change() hook > to fire in all cases. > > The second issue resolved here occurs when users don't detach > programs. The gist is a refcnt issue resolved by implementing the > release callback. See patch for details. > > For testing I ran both sample/sockmap and selftests bpf/test_maps.c. > Dave Watson ran TLS test suite on v1 version of the patches without > the put_module error path change. > > v4 fix missing rcu_unlock() > v3 wrap psock reference in RCU > v2 changes rebased onto bpf-next with small update adding module_put
Series applied to bpf tree, thanks John!