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.