From mboxrd@z Thu Jan 1 00:00:00 1970 From: Jakub Kicinski Subject: Re: [PATCH v3] Add BPF_SYNCHRONIZE_MAP_TO_MAP_REFERENCES bpf(2) command Date: Mon, 30 Jul 2018 17:26:41 -0700 Message-ID: <20180730172641.7d516231@cakuba.netronome.com> References: <20180729205835.34850-1-dancol@google.com> Mime-Version: 1.0 Content-Type: text/plain; charset=US-ASCII Content-Transfer-Encoding: 7bit Cc: Daniel Borkmann , Joel Fernandes , linux-kernel , Tim Murray , netdev , Alexei Starovoitov , Lorenzo Colitti , Chenbo Feng , Mathieu Desnoyers , Alexei Starovoitov To: Daniel Colascione Return-path: In-Reply-To: Sender: linux-kernel-owner@vger.kernel.org List-Id: netdev.vger.kernel.org On Mon, 30 Jul 2018 03:25:43 -0700, Daniel Colascione wrote: > On Mon, Jul 30, 2018 at 3:04 AM, Daniel Borkmann wrote: > > Hmm, I don't think such UAPI as above is future-proof. In case we would want > > a similar mechanism in future for other maps, we would need a whole new bpf > > command or reuse BPF_SYNCHRONIZE_MAP_TO_MAP_REFERENCES as a workaround though > > the underlying map may not even be a map-to-map. Additionally, we don't have > > any map object at hand in the above, so we couldn't make any finer grained > > decisions either. Something like below would be more suitable and leaves room > > for extending this further in future. > > YAGNI. Your proposed mechanism doesn't add anything under the current > implementation. FWIW in case of HW offload targeting a particular map may allow users to avoid a potentially slow sync with all the devices on the system. > It's also not clear how a map-specific synchronization > command is supposed to work in cases where we swap multiple map > references. Do we synchronize_rcu multiple times? Why would we impose > that inefficiency just for the sake of some non-specific future > extensibility? Add some kind of batching layer? The current approach > works for the anticipated use cases. > > While my preference is not to talk about map-to-maps at all in the > user API and instead spec the thing as talking about map references in > general, I'd rather have something that talks about > references-to-maps-acquired-from-maps than this interface.