> -----Original Message-----
> From: Thomas Monjalon [mailto:[email protected]]
> Sent: Sunday, October 27, 2019 00:46
> To: Ray Kinsella <[email protected]>; [email protected]; Wang, Haiyue 
> <[email protected]>
> Cc: [email protected]; Yigit, Ferruh <[email protected]>; 
> [email protected]; Verplanke, Edwin
> <[email protected]>
> 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 <[email protected]> wrote:
> > >
> > >> Enhance the PMD to support retrieving trace information like
> > >> Rx/Tx burst selection etc.
> > >>
> > >> Signed-off-by: Haiyue Wang <[email protected]>
> [...]
> > >>  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 <[email protected]>
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 <[email protected]>
    Acked-by: Viacheslav Ovsiienko <[email protected]>
    Tested-by: Raslan Darawsheh <[email protected]>

Reply via email to