[dpdk-dev] [PATCH v3] net/ixgbe: enable PTYPE offload for x86 vector PMD
Ferruh Yigit
ferruh.yigit at intel.com
Mon Jun 12 12:18:28 CEST 2017
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] ?
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#n626
> +
> # 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.
> + 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