[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