[dpdk-dev] [PATCH v2 1/2] ethdev: add buffered tx api

Ananyev, Konstantin konstantin.ananyev at intel.com
Wed Mar 9 16:23:50 CET 2016


> 
> 2016-03-09 13:36, Ananyev, Konstantin:
> > > > +   if (to_send == 0)
> > > > +           return 0;
> > >
> > > Why this check is done in the lib?
> > > What is the performance gain if we are idle?
> > > It can be done outside if needed.
> >
> > Yes, that could be done outside, but if user has to do it anyway,
> > why not to put it inside?
> > I don't expect any performance gain/loss because of that -
> > just seems a bit more convenient to the user.
> 
> It is handling an idle case so there is no gain obviously.
> But the condition branching is surely a loss.

I suppose that condition should always be checked:
either in user code prior to function call or inside the
function call itself.
So don't expect any difference in performance here...
Do you have any particular example when you think it would? 
Or are you talking about rte_eth_tx_buffer() calling
rte_eth_tx_buffer_flush() internally?
For that one - both are flush is 'static inline' , so I expect
compiler be smart enough to remove this redundant check.  

> So why the user would you like to do this check?
Just for user convenience - to save him doing that manually.

Konstantin


More information about the dev mailing list