[dpdk-dev] [RFC v2 1/3] ethdev: add the API for getting trace information
Wang, Haiyue
haiyue.wang at intel.com
Sun Oct 27 05:10:39 CET 2019
> -----Original Message-----
> From: Thomas Monjalon [mailto:thomas at monjalon.net]
> Sent: Sunday, October 27, 2019 00:46
> To: Ray Kinsella <mdr at ashroe.eu>; stephen at networkplumber.org; Wang, Haiyue <haiyue.wang at intel.com>
> Cc: dev at dpdk.org; Yigit, Ferruh <ferruh.yigit at intel.com>; viacheslavo at mellanox.com; Verplanke, Edwin
> <edwin.verplanke at intel.com>
> Subject: Re: [dpdk-dev] [RFC v2 1/3] ethdev: add the API for getting trace information
>
> 13/08/2019 14:51, Ray Kinsella:
> > On 13/08/2019 04:24, Stephen Hemminger wrote:
> > > On Tue, 13 Aug 2019 11:06:10 +0800
> > > Haiyue Wang <haiyue.wang at intel.com> wrote:
> > >
> > >> Enhance the PMD to support retrieving trace information like
> > >> Rx/Tx burst selection etc.
> > >>
> > >> Signed-off-by: Haiyue Wang <haiyue.wang at intel.com>
> [...]
> > >> int
> > >> +rte_eth_trace_info_get(uint16_t port_id, uint16_t queue_id,
> > >> + enum rte_eth_trace type, char *buf, int sz)
> [...]
> > > The bigger problem is that this information is like a log message
> > > and unstructured, which makes it device specific and useless for automation.
> >
> > IMHO - this is much better implemented as a capability bitfield, that
> > can be queried.
>
> Now I see where this idea comes from.
> Ray, Stephen, structuring shuch information is really a bad idea.
> The Rx/Tx functions are not like capabilities, they are full of smart
> tricks written by brillant engineers. Please do not try to put ideas
> in some categories. We will have more and more new types of optimization
> and ideas when the hardware will evolve.
>
> And, more importantly, there is no need of automation or processing
> with this information.
>
The real requirement is from VPP CLI practice in production:
http://www.jimmdenton.com/vpp-1810-mellanox/
tx burst function: xxx
rx burst function: xxx
Their implementation requires *non static* rx/tx burst.
Yes, MLX uses an template compile for extreme performance.
----
* @param olx
* Configured offloads mask, presents the bits of MLX5_TXOFF_CONFIG_xxx
* values. Should be static to take compile time static configuration
* advantages.
*
* @return
* Number of packets successfully transmitted (<= pkts_n).
*/
static __rte_always_inline uint16_t
mlx5_tx_burst_tmpl(struct mlx5_txq_data *restrict txq,
struct rte_mbuf **restrict pkts,
uint16_t pkts_n,
unsigned int olx)
----
What we design is from another kind of thinking from CPU's point view:
commit 2e542da709371ee51d61d74c9a1b357ad34ae13e
Author: David Christensen <drc at linux.vnet.ibm.com>
Date: Fri Aug 16 12:56:04 2019 -0500
net/mlx5: add Altivec Rx
Added mlx5_rxtx_vec_altivec.h which supports vectorized RX
using Altivec vector code. Modified associated build files
to use the new code.
Signed-off-by: David Christensen <drc at linux.vnet.ibm.com>
Acked-by: Viacheslav Ovsiienko <viacheslavo at mellanox.com>
Tested-by: Raslan Darawsheh <rasland at mellanox.com>
More information about the dev
mailing list