[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