From mboxrd@z Thu Jan 1 00:00:00 1970 From: Daniel Borkmann Subject: Re: [bpf PATCH v4 0/3] bpf: sockmap fixes Date: Tue, 6 Feb 2018 13:01:09 +0100 Message-ID: <7e1e24ad-73d8-6bce-b2ac-617faac95ba6@iogearbox.net> References: <20180205181601.6770.76316.stgit@john-Precision-Tower-5810> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 7bit Cc: netdev@vger.kernel.org To: John Fastabend , ast@kernel.org, davejwatson@fb.com Return-path: Received: from www62.your-server.de ([213.133.104.62]:59004 "EHLO www62.your-server.de" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752597AbeBFMBO (ORCPT ); Tue, 6 Feb 2018 07:01:14 -0500 In-Reply-To: <20180205181601.6770.76316.stgit@john-Precision-Tower-5810> Content-Language: en-US Sender: netdev-owner@vger.kernel.org List-ID: 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!