[dpdk-dev] [PATCH v3] net/ixgbe: enable PTYPE offload for x86 vector PMD

Zhang, Qi Z qi.z.zhang at intel.com
Mon Jun 12 14:27:46 CEST 2017


Hi Ferruh:

> -----Original Message-----
> From: Yigit, Ferruh
> Sent: Monday, June 12, 2017 6:18 PM
> To: Zhang, Qi Z <qi.z.zhang at intel.com>; Ananyev, Konstantin
> <konstantin.ananyev at intel.com>
> Cc: Lu, Wenzhuo <wenzhuo.lu at intel.com>; Zhang, Helin
> <helin.zhang at intel.com>; dev at dpdk.org
> Subject: Re: [dpdk-dev] [PATCH v3] net/ixgbe: enable PTYPE offload for x86
> vector PMD
> 
> On 6/11/2017 6:17 AM, Qi Zhang wrote:
> > Hardware PTYPE in Rx desc will be parsed to fill mbuf's packet_type.
> >
> > Signed-off-by: Qi Zhang <qi.z.zhang at intel.com>
> 
> <...>
> 
> > diff --git a/drivers/net/ixgbe/Makefile b/drivers/net/ixgbe/Makefile
> > index 5529d81..8b86fe3 100644
> > --- a/drivers/net/ixgbe/Makefile
> > +++ b/drivers/net/ixgbe/Makefile
> > @@ -125,6 +125,11 @@ SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) +=
> > ixgbe_82599_bypass.c  endif
> >  SRCS-$(CONFIG_RTE_LIBRTE_IXGBE_PMD) += rte_pmd_ixgbe.c
> >
> > +# vector PMD driver needs SSE4.1 support ifeq ($(findstring
> > +RTE_MACHINE_CPUFLAG_SSE4_1,$(CFLAGS)),)
> > +CFLAGS_ixgbe_rxtx_vec_sse.o += -msse4.1 endif
> 
> Hi Qi,
> 
> What happens if runtime doesn't have SSE4.1 support?
> 
> Should we add a dynamic check as done in 140e [1] ?
> 
I think dynamic check is necessary, thanks for capture this.
> 
> And I am for extracting this part into another patch, to highlight what is done
> here.
> 
> patch 1: Increase ixgbe minimum required support to SSE4.1 Patch 2: Add
> PTYPE support to vector PMD
> 
> [1]		
> http://dpdk.org/browse/dpdk/tree/drivers/net/i40e/i40e_rxtx_vec_sse.c#n6
> 26
> 
Agree, two patches looks better.
> 
> > +
> >  # install this header file
> >  SYMLINK-$(CONFIG_RTE_LIBRTE_IXGBE_PMD)-include :=
> rte_pmd_ixgbe.h
> >
> > diff --git a/drivers/net/ixgbe/ixgbe_ethdev.c
> > b/drivers/net/ixgbe/ixgbe_ethdev.c
> > index 2083cde..3e39648 100644
> > --- a/drivers/net/ixgbe/ixgbe_ethdev.c
> > +++ b/drivers/net/ixgbe/ixgbe_ethdev.c
> > @@ -3717,6 +3717,14 @@ ixgbe_dev_supported_ptypes_get(struct
> rte_eth_dev *dev)
> >  	    dev->rx_pkt_burst == ixgbe_recv_pkts_lro_bulk_alloc ||
> >  	    dev->rx_pkt_burst == ixgbe_recv_pkts_bulk_alloc)
> >  		return ptypes;
> > +
> > +#if defined(RTE_ARCH_X86_64) || \
> > +	defined(RTE_ARCH_X86_X32) || \
> > +	defined(RTE_ARCH_I686)
> 
> It is possible to use single "RTE_ARCH_X86" here, to cover all three.
I saw all x86 configure will have this macro enabled, it’s the one I'm looking for, thanks
> 
> > +	if (dev->rx_pkt_burst == ixgbe_recv_pkts_vec ||
> > +	    dev->rx_pkt_burst == ixgbe_recv_scattered_pkts_vec)
> > +		return ptypes;
> > +#endif
> >  	return NULL;
> >  }
> 
> <...>


More information about the dev mailing list