[dpdk-dev] [RFC 19.11 1/2] ethdev: make DPDK core functions non-inline

Wiles, Keith keith.wiles at intel.com
Tue Jul 30 18:04:29 CEST 2019



> On Jul 30, 2019, at 10:54 AM, Stephen Hemminger <stephen at networkplumber.org> wrote:
> 
> On Tue, 30 Jul 2019 16:33:55 +0100
> Bruce Richardson <bruce.richardson at intel.com> wrote:
> 
>> On Tue, Jul 30, 2019 at 08:25:34AM -0700, Stephen Hemminger wrote:
>>> On Tue, 30 Jul 2019 14:49:49 +0200
>>> Marcin Zapolski <marcinx.a.zapolski at intel.com> wrote:
>>> 
>>>> Make rte_eth_rx_burst, rte_eth_tx_burst and other static inline ethdev
>>>> functions not inline. They are referencing DPDK internal structures and
>>>> inlining forces those structures to be exposed to user applications.
>>>> 
>>>> In internal testing with i40e NICs a performance drop of about 2% was
>>>> observed with testpmd.
>>>> 
>>>> Signed-off-by: Marcin Zapolski <marcinx.a.zapolski at intel.com>  
>>> 
>>> Sorry 2% matters.  
>> 
>> Note that this is with testpmd. Are there many apps out there where a 2%
>> drop in IO cost would be noticable?
> 
> Why not find a way to get the 2% back elsewhere? Maybe analyzing the code/cache
> in more detail. Perhaps some prefetching could help, or getting rid of
> indirect calls elsewhere in the code.  At the extreme, maybe implementing
> something like the kernel static branches (self-modifying code) would
> get a lot back.

+1, I discussed something very similar internally or at least let's not reduce DPDK performance by 2% and find a different way.

Regards,
Keith



More information about the dev mailing list