> -----Original Message----- > From: dev [mailto:dev-boun...@dpdk.org] On Behalf Of Neil Horman > Sent: Saturday, March 24, 2018 2:09 AM > To: Richardson, Bruce <bruce.richard...@intel.com> > Cc: Yigit, Ferruh <ferruh.yi...@intel.com>; Mcnamara, John > <john.mcnam...@intel.com>; Kovacevic, Marko > <marko.kovace...@intel.com>; Thomas Monjalon <tho...@monjalon.net>; Pattan, > Reshma <reshma.pat...@intel.com>; dev@dpdk.org > Subject: Re: [dpdk-dev] [PATCH v5] ethdev: return named opaque type instead > of void pointer > > On Fri, Mar 23, 2018 at 05:00:34PM +0000, Bruce Richardson wrote: > > On Wed, Mar 21, 2018 at 09:04:01AM -0400, Neil Horman wrote: > > > On Tue, Mar 20, 2018 at 04:34:04PM +0000, Ferruh Yigit wrote: > > > > "struct rte_eth_rxtx_callback" is defined as internal data structure and > > > > used as named opaque type. > > > > > > > > So the functions that are adding callbacks can return objects in this > > > > type instead of void pointer. > > > > > > > > Also const qualifier added to "struct rte_eth_rxtx_callback *" to > > > > protect it better from application modification. > > > > > > > > Signed-off-by: Ferruh Yigit <ferruh.yi...@intel.com> > > > > --- > > > > v2: > > > > * keep using struct * in parameters, instead add callback functions > > > > return struct rte_eth_rxtx_callback pointer. > > > > > > > > v4: > > > > * Remove deprecation notice. LIBABIVER already increased in this release > > > > > > > > v5: > > > > * add const qualifier to rte_eth_rxtx_callback > > > I still wish we could find a way to remove the inline functions and truly > > > protect that struct, but a const is definately better than nothing > > > > > > Acked-by: Neil Horman <nhor...@tuxdriver.com> > > > > > Actually, I think we should do exactly that - convert the rx and tx burst > > calls into actual function calls (and consider any other inlined functions > > too). The cost would be the overhead of making an additional function call > > per-burst, which is likely to be pretty minimal for most common burst sizes > > e.g. 32. > > > > We did some quick tests here with the i40e driver, and for a burst size of > > 32 saw less than 1% perf drop, and for even a small burst of 8 saw less > > than 5% drop. Note that this is testing with testpmd, which has nothing but > > I/O in the datapath. A real-world app is likely to do far more with the > > packets and therefore see proportionally far less perf hit. > > > > Thoughts? > > > > /Bruce > > > > PS: This un-inlining could probably be applied to other device types too, > > e.g. cryptodev (though probably not eventdev as it tends to have smaller > > bursts in some use-cases). > > > I would be 1000% on board with this conversion.
+1 from me too. It would allow to greatly simplify support and further development for ethdev. Konstantin