On Wed, 17 Apr 2019 17:46:34 +0000 Jerin Jacob Kollanukkaran <jer...@marvell.com> wrote:
> > -----Original Message----- > > From: dev <dev-boun...@dpdk.org> On Behalf Of Bruce Richardson > > Sent: Wednesday, April 17, 2019 2:07 PM > > To: Honnappa Nagarahalli <honnappa.nagaraha...@arm.com> > > Cc: dev@dpdk.org; Stephen Hemminger <step...@networkplumber.org>; > > Ananyev, Konstantin <konstantin.anan...@intel.com>; tho...@monjalon.net; > > Ray Kinsella <m...@ashroe.eu>; nd <n...@arm.com> > > Subject: Re: [dpdk-dev] ABI and inline functions > > > > > 2) Every function that is not in the direct datapath (fastpath?) > > > should not be inline. Exceptions or things like rx/tx burst, ring > > > enqueue/dequeue, and packet alloc/free - Stephen > > > > Agree with this. Anything not data path should not be inline. The next > > question > > then is for data path items how to determine whether they need to be inline > > or > > not. In general my rule-of-thumb: > > * anything dealing with bursts of packets should not be inline > > # I think, we need consider the how fat is the function too, > If it is light weight, probably we need to make it inline > # Except the forward case, In real world use case, it is not trivial make > large > burst of packet to process it even though function prototype burst. > We may need to consider that > # For the given function if some argument is used with inline other function, > probably no point in making that function alone inline as the structure > is exposed in some other function. > > > * anything what works with single packet at a time should be inline > > > > > In this context, does it make sense to say that we will maintain API > > > compatibility rather than saying ABI compatibility? This will also > > > send the right message to the end users. > > > > > I would value ABI compatibility much higher than API compatibility. If > > someone > > is recompiling the application anyway, making a couple of small changes > > (large > > rework is obviously a different issue) to the code should not be a massive > > issue, I > > hope. On the other hand, ABI compatibility is needed to allow seamless > > update > > from one version to another, and it's that ABI compatiblity that allows > > distro's to > > pick up our latest and greatest versions. > > IMO, We have two primary use case for DPDK > > 1) NFV kind of use case where the application needs to run on multiple > platform > without recompiling it. > 2) Fixed appliance use case where embed SoC like Intel Denverton or ARM64 > integrated > Controller used. For fixed appliance use case, end user care more of > performance > than ABI compatibility as it easy to recompile the end user application vs > the cost of > hitting performance impact. Nobody cares about compatiablity until they have to the first security update.