[dpdk-dev] [PATCH v2 2/2] ethdev: introduce Tx queue offloads API

Shahaf Shuler shahafs at mellanox.com
Tue Sep 12 07:25:42 CEST 2017


Tuesday, September 12, 2017 7:01 AM, Jerin Jacob:
> Yes, only when ETH_TXQ_FLAGS_NOMULTMEMP and
> ETH_TXQ_FLAGS_NOREFCOUNT selected at tx queue configuration.
> 
> >
> > So literally, yes it is not a TX HW offload, though I understand your
> > intention to have such possibility - it might help to save some cycles.
> 
> It not a few cycles. We could see ~24% drop on per core(with 64B) with
> testpmd and l3fwd on some SoCs. It is not very specific to nicvf HW, The
> problem is with limited cache hierarchy in very low end arm64 machines.
> For TX buffer recycling case, it need to touch the mbuf again to find out the
> associated mempool to free. It is fine if application demands it but not all the
> application demands it.
> 
> We have two category of arm64 machines, The high end machine where
> cache hierarchy similar x86 server machine. The low end ones with very
> limited cache resources. Unfortunately, we need to have the same binary on
> both machines.
> 
> 
> > Wonder would some new driver specific function would help in that case?
> > nicvf_txq_pool_setup(portid, queueid, struct rte_mempool *txpool,
> > uint32_t flags); or so?
> 
> It is possible, but how do we make such change in testpmd, l3fwd or ipsec-
> gw in tree application which does need only NOMULTIMEMP &
> NOREFCOUNT.
> 
> If there is concern about making it Tx queue level it is fine. We can move
> from queue level to port level or global level.
> IMO, Application should express in some form that it wants only
> NOMULTIMEMP & NOREFCOUNT and thats is the case for l3fwd and ipsec-
> gw
> 

I understand the use case, and the fact those flags improve the performance on low-end ARM CPUs.
IMO those flags cannot be on queue/port level. They must be global.

Even though the use-case is generic the nicvf PMD is the only one which do such optimization.
So am suggesting again - why not expose it as a PMD specific parameter?

- The application can express it wants such optimization. 
- It is global

Currently it does not seems there is high demand for such flags from other PMDs. If such demand will raise, we can discuss again on how to expose it properly.







More information about the dev mailing list