On Mon, Jun 8, 2015 at 6:13 PM, Wei li <l...@dtdream.com> wrote: > 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 <l...@dtdream.com> > --- > v1->v2: fix typo > > 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..1e0a483 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()) { > + * queues. > + * 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); > }
Patch looks good, But Daniele has plan to get rid of queue flushing logic. do you see problem with doing this? _______________________________________________ dev mailing list dev@openvswitch.org http://openvswitch.org/mailman/listinfo/dev