[ovs-dev] Just for my output format test, pls ignore it.
dongjun
dongj at dtdream.com
Mon Jun 8 03:40:52 UTC 2015
When tx queue is shared among CPUS,the pkts always be flush in
'netdev_dpdk_eth_send'
So it is unnecessarily for flushing in netdev_dpdk_rxq_recv
Otherwise tx will be accessed without locking
Signed-off-by: Wei li <liw at dtdream.com
<http://openvswitch.org/mailman/listinfo/dev> >
---
lib/netdev-dpdk.c | 7 +++++--
1 file changed, 5 insertions(+), 2 deletions(-)
diff --git a/lib/netdev-dpdk.c b/lib/netdev-dpdk.c
index 63243d8..25e3a73 100644
--- a/lib/netdev-dpdk.c
+++ b/lib/netdev-dpdk.c
@@ -892,8 +892,11 @@ netdev_dpdk_rxq_recv(struct netdev_rxq *rxq_, struct
dp_packet **packets,
int nb_rx;
/* There is only one tx queue for this core. Do not flush other
- * queueus. */
- if (rxq_->queue_id == rte_lcore_id()) {
+ * queueus.
+ * Do not flush tx queue which is shared among CPUs
+ * since it is always flushed */
+ if (rxq_->queue_id == rte_lcore_id() &&
+ OVS_LIKELY(!dev->txq_needs_locking)) {
dpdk_queue_flush(dev, rxq_->queue_id);
}
--
1.9.5.msysgit.1
More information about the dev
mailing list