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

Reply via email to