From: Ray Kinsella <mdr@ashroe.eu>
To: Stephen Hemminger <stephen@networkplumber.org>,
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>, nd <nd@arm.com>
Subject: Re: [dpdk-dev] ABI and inline functions
Date: Tue, 23 Apr 2019 15:19:04 +0100 [thread overview]
Message-ID: <c0eadddf-be4b-e0ed-56ba-d98b09769ea5@ashroe.eu> (raw)
Message-ID: <20190423141904.sko_PJ37WXDg-4fLhVA-fCupkpzWAI6XBRIhZk_Xhrc@z> (raw)
In-Reply-To: <20190417115110.5cb70832@hermes.lan>
On 17/04/2019 19:51, Stephen Hemminger wrote:
> 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
Well if it light weight however it is not dealing directly with packets,
probably does not matter if is not-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.
>
+1
next prev parent reply other threads:[~2019-04-23 14:19 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
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 ` Ray Kinsella [this message]
2019-04-23 14:19 ` [dpdk-dev] " 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=c0eadddf-be4b-e0ed-56ba-d98b09769ea5@ashroe.eu \
--to=mdr@ashroe.eu \
--cc=Honnappa.Nagarahalli@arm.com \
--cc=bruce.richardson@intel.com \
--cc=dev@dpdk.org \
--cc=jerinj@marvell.com \
--cc=konstantin.ananyev@intel.com \
--cc=nd@arm.com \
--cc=stephen@networkplumber.org \
--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).