[dpdk-dev] [RFC PATCH] virtio: virtio ring layout optimization and vectorization rx

Thomas Monjalon thomas.monjalon at 6wind.com
Tue Sep 22 10:37:18 CEST 2015


2015-09-18 00:17, Huawei Xie:
> --- a/config/common_linuxapp
> +++ b/config/common_linuxapp
> @@ -241,6 +241,7 @@ CONFIG_RTE_LIBRTE_ENIC_DEBUG=n
>  # Compile burst-oriented VIRTIO PMD driver
>  #
>  CONFIG_RTE_LIBRTE_VIRTIO_PMD=y
> +CONFIG_RTE_VIRTIO_SIMPLE=y
>  CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_INIT=n
>  CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_RX=n
>  CONFIG_RTE_LIBRTE_VIRTIO_DEBUG_TX=n

-1

> @@ -1150,6 +1158,14 @@ rx_func_get(struct rte_eth_dev *eth_dev)
>  		eth_dev->rx_pkt_burst = &virtio_recv_mergeable_pkts;
>  	else
>  		eth_dev->rx_pkt_burst = &virtio_recv_pkts;
> +
> +#ifdef RTE_VIRTIO_SIMPLE
> +	if (!vtpci_with_feature(hw, VIRTIO_NET_F_MRG_RXBUF)) {
> +		printf("use simple rxtx\n");
> +       		eth_dev->rx_pkt_burst = &virtio_recv_pkts_simple;
> +       		eth_dev->tx_pkt_burst = &virtio_xmit_pkts_simple;
> +	}
> +#endif

I thought it was clear we must avoid #ifdef for configuration.
Please check how to add a runtime flag.
Or better: keep only one path which works everywhere and well optimized.



More information about the dev mailing list