From: Stephen Hemminger <stephen@networkplumber.org>
To: Jerin Jacob Kollanukkaran <jerinj@marvell.com>
Cc: Bruce Richardson <bruce.richardson@intel.com>,
Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>,
"dev@dpdk.org" <dev@dpdk.org>,
"Ananyev, Konstantin" <konstantin.ananyev@intel.com>,
"thomas@monjalon.net" <thomas@monjalon.net>,
Ray Kinsella <mdr@ashroe.eu>, nd <nd@arm.com>
Subject: Re: [dpdk-dev] ABI and inline functions
Date: Wed, 17 Apr 2019 11:51:10 -0700 [thread overview]
Message-ID: <20190417115110.5cb70832@hermes.lan> (raw)
Message-ID: <20190417185110.dqkj_kBKr1fHV9i59qBrl7JaMor38t-nT33VE6B6hCw@z> (raw)
In-Reply-To: <BYAPR18MB2424FB7B26FFE737C4871561C8250@BYAPR18MB2424.namprd18.prod.outlook.com>
On Wed, 17 Apr 2019 17:46:34 +0000
Jerin Jacob Kollanukkaran <jerinj@marvell.com> wrote:
> > -----Original Message-----
> > From: dev <dev-bounces@dpdk.org> On Behalf Of Bruce Richardson
> > Sent: Wednesday, April 17, 2019 2:07 PM
> > To: Honnappa Nagarahalli <Honnappa.Nagarahalli@arm.com>
> > Cc: dev@dpdk.org; Stephen Hemminger <stephen@networkplumber.org>;
> > Ananyev, Konstantin <konstantin.ananyev@intel.com>; thomas@monjalon.net;
> > Ray Kinsella <mdr@ashroe.eu>; nd <nd@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.
next prev parent reply other threads:[~2019-04-17 18:51 UTC|newest]
Thread overview: 40+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-04-17 5:12 Honnappa Nagarahalli
2019-04-17 5:12 ` Honnappa Nagarahalli
2019-04-17 8:36 ` Bruce Richardson
2019-04-17 8:36 ` Bruce Richardson
2019-04-17 16:52 ` Stephen Hemminger
2019-04-17 16:52 ` Stephen Hemminger
2019-04-17 17:46 ` Jerin Jacob Kollanukkaran
2019-04-17 17:46 ` Jerin Jacob Kollanukkaran
2019-04-17 18:51 ` Stephen Hemminger [this message]
2019-04-17 18:51 ` Stephen Hemminger
2019-04-18 5:56 ` [dpdk-dev] [EXT] " Jerin Jacob Kollanukkaran
2019-04-18 5:56 ` Jerin Jacob Kollanukkaran
2019-04-23 14:23 ` Ray Kinsella
2019-04-23 14:23 ` Ray Kinsella
2019-04-24 18:38 ` Jerin Jacob Kollanukkaran
2019-04-24 18:38 ` Jerin Jacob Kollanukkaran
2019-04-23 14:19 ` [dpdk-dev] " Ray Kinsella
2019-04-23 14:19 ` Ray Kinsella
2019-04-18 4:34 ` Honnappa Nagarahalli
2019-04-18 4:34 ` Honnappa Nagarahalli
2019-04-18 10:28 ` Bruce Richardson
2019-04-18 10:28 ` Bruce Richardson
2019-04-23 14:12 ` Ray Kinsella
2019-04-23 14:12 ` Ray Kinsella
2019-04-24 5:15 ` Honnappa Nagarahalli
2019-04-24 5:15 ` Honnappa Nagarahalli
2019-04-24 11:08 ` Burakov, Anatoly
2019-04-24 11:08 ` Burakov, Anatoly
2019-04-24 12:22 ` Ray Kinsella
2019-04-24 12:22 ` Ray Kinsella
2019-04-24 12:54 ` Burakov, Anatoly
2019-04-24 12:54 ` Burakov, Anatoly
2019-04-24 15:44 ` Stephen Hemminger
2019-04-24 15:44 ` Stephen Hemminger
2019-04-30 8:52 ` Thomas Monjalon
2019-04-30 8:52 ` Thomas Monjalon
2019-04-24 5:08 ` Honnappa Nagarahalli
2019-04-24 5:08 ` Honnappa Nagarahalli
2019-04-24 8:49 ` Bruce Richardson
2019-04-24 8:49 ` Bruce Richardson
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190417115110.5cb70832@hermes.lan \
--to=stephen@networkplumber.org \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=konstantin.ananyev@intel.com \
--cc=mdr@ashroe.eu \
--cc=nd@arm.com \
--cc=thomas@monjalon.net \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).