All of lore.kernel.org
 help / color / mirror / Atom feed
From: Tiwei Bie <tiwei.bie@intel.com>
To: Olivier Matz <olivier.matz@6wind.com>, maxime.coquelin@redhat.com
Cc: yliu@fridaylinux.org, stephen@networkplumber.org, dev@dpdk.org,
	stable@dpdk.org, antonio.fischetti@intel.com
Subject: Re: [PATCH v2 06/10] net/virtio: fix queue setup consistency
Date: Wed, 6 Dec 2017 13:25:29 +0800	[thread overview]
Message-ID: <20171206052528.xmxjxfkkurq7hhsp@debian-xvivbkq> (raw)
In-Reply-To: <20170907121347.16208-7-olivier.matz@6wind.com>

Hi Maxime and Olivier:

On Thu, Sep 07, 2017 at 02:13:43PM +0200, Olivier Matz wrote:
[...]
> diff --git a/drivers/net/virtio/virtio_ethdev.c b/drivers/net/virtio/virtio_ethdev.c
> index 8eee3ff80..c7888f103 100644
> --- a/drivers/net/virtio/virtio_ethdev.c
> +++ b/drivers/net/virtio/virtio_ethdev.c
> @@ -1737,6 +1737,19 @@ virtio_dev_start(struct rte_eth_dev *dev)
>  	struct virtnet_rx *rxvq;
>  	struct virtnet_tx *txvq __rte_unused;
>  	struct virtio_hw *hw = dev->data->dev_private;
> +	int ret;
> +
> +	/* Finish the initialization of the queues */
> +	for (i = 0; i < dev->data->nb_rx_queues; i++) {
> +		ret = virtio_dev_rx_queue_setup_finish(dev, i);
> +		if (ret < 0)
> +			return ret;
> +	}

I'm trying to fix an issue [1] reported by Antonio. And during
the debugging, I found that vector Rx of virtio PMD has been
broken (when doing port stop/start) since below two patches were
applied:

25bf7a0b0936 ("vhost: make error handling consistent in Rx path")
   -- needed on the Tx side (testpmd/vhost-pmd in below test)
efc83a1e7fc3 ("net/virtio: fix queue setup consistency")
   -- needed on the Rx side (testpmd/virtio-user in below test)

Below are the steps to reproduce the issue:

#0. Checkout the commit

# 25bf7a0b0936 was applied after efc83a1e7fc3
git checkout 25bf7a0b0936

(There is another vector Rx bug caused by rxq flushing on the
 HEAD. So it's better to checkout the old commit first.)

#1. Apply below patch to disable mergeable Rx, and build DPDK

diff --git a/drivers/net/virtio/virtio_ethdev.h b/drivers/net/virtio/virtio_ethdev.h
index 2039bc5..d45ffa5 100644
--- a/drivers/net/virtio/virtio_ethdev.h
+++ b/drivers/net/virtio/virtio_ethdev.h
@@ -65,7 +65,6 @@
 	 1u << VIRTIO_NET_F_CSUM	  |	\
 	 1u << VIRTIO_NET_F_HOST_TSO4	  |	\
 	 1u << VIRTIO_NET_F_HOST_TSO6	  |	\
-	 1u << VIRTIO_NET_F_MRG_RXBUF	  |	\
 	 1u << VIRTIO_NET_F_MTU	| \
 	 1u << VIRTIO_RING_F_INDIRECT_DESC |    \
 	 1ULL << VIRTIO_F_VERSION_1       |	\

#2. Launch testpmd/vhost-pmd:

./x86_64-native-linuxapp-gcc/app/testpmd -l 1,2 \
	--socket-mem 1024,1024 \
	--file-prefix=vhost \
	--no-pci \
	--vdev=net_vhost0,iface=/tmp/socket-0,queues=1 \
	-- \
	--port-topology=chained \
	-i \
	--nb-cores=1

#3. Launch testpmd/virtio-user:

./x86_64-native-linuxapp-gcc/app/testpmd -l 5,6 \
	--socket-mem 1024,1024 \
	--file-prefix=virtio-user \
	--no-pci \
	--vdev=net_virtio_user0,path=/tmp/socket-0 \
	-- \
	--port-topology=chained \
	-i \
	--nb-cores=1 \
	--disable-hw-vlan \
	--txqflags=0xf01

#4. In testpmd/virtio-user run below commands:

testpmd> set fwd rxonly
testpmd> start

#5. In testpmd/vhost-pmd run below commands:

testpmd> set burst 1
testpmd> set fwd rxonly
testpmd> start tx_first 1
testpmd> stop

#6. In testpmd/virtio-user run below commands:

testpmd> stop
testpmd> port stop all
testpmd> port start all
testpmd> start

#7. In testpmd/vhost-pmd run below commands:

testpmd> set fwd txonly
testpmd> start

#8. In testpmd/virtio-user run below commands:

testpmd> show port stats all

And you will see that there is no traffic any more after
receiving a few hundred packets.

[1] http://dpdk.org/ml/archives/dev/2017-December/082983.html

Best regards,
Tiwei Bie

  reply	other threads:[~2017-12-06  5:25 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-08-31 13:40 [PATCH 0/9] virtio fixes Olivier Matz
2017-08-31 13:40 ` [PATCH 1/9] net/virtio: revert "do not claim to support LRO" Olivier Matz
2017-08-31 13:40 ` [PATCH 2/9] net/virtio: revert "do not falsely claim to do IP checksum" Olivier Matz
2017-08-31 13:47   ` Olivier MATZ
2017-08-31 13:40 ` [PATCH 3/9] doc: fix description of L4 Rx checksum offload Olivier Matz
2017-08-31 13:40 ` [PATCH 4/9] net/virtio: fix log levels in configure Olivier Matz
2017-08-31 13:40 ` [PATCH 5/9] net/virtio: fix mbuf port for simple Rx function Olivier Matz
2017-08-31 13:48   ` Olivier MATZ
2017-08-31 13:40 ` [PATCH 6/9] net/virtio: fix queue setup consistency Olivier Matz
2017-08-31 13:49   ` Olivier MATZ
2017-08-31 13:40 ` [PATCH 7/9] net/virtio: rationalize setting of Rx/Tx handlers Olivier Matz
2017-09-01  9:19   ` Yuanhan Liu
2017-09-01  9:52     ` Olivier MATZ
2017-09-01 12:31       ` Yuanhan Liu
2017-09-06 14:40         ` Olivier MATZ
2017-09-07  8:13           ` Yuanhan Liu
2017-08-31 13:40 ` [PATCH 8/9] net/virtio: keep Rx handler whatever the Tx queue config Olivier Matz
2017-08-31 13:50   ` Olivier MATZ
2017-09-01  9:25   ` Yuanhan Liu
2017-09-01  9:58     ` Olivier MATZ
2017-09-01 12:22       ` Yuanhan Liu
2017-08-31 13:40 ` [PATCH 9/9] net/virtio: fix Rx handler when checksum is requested Olivier Matz
2017-08-31 13:51   ` Olivier MATZ
2017-09-07 12:13 ` [PATCH v2 00/10] virtio fixes Olivier Matz
2017-09-07 12:13   ` [PATCH v2 01/10] net/virtio: revert "do not claim to support LRO" Olivier Matz
2017-09-07 12:13   ` [PATCH v2 02/10] net/virtio: revert "do not falsely claim to do IP checksum" Olivier Matz
2017-09-07 12:13   ` [PATCH v2 03/10] doc: fix description of L4 Rx checksum offload Olivier Matz
2017-09-07 12:13   ` [PATCH v2 04/10] net/virtio: fix log levels in configure Olivier Matz
2017-09-07 12:13   ` [PATCH v2 05/10] net/virtio: fix mbuf port for simple Rx function Olivier Matz
2017-09-07 12:13   ` [PATCH v2 06/10] net/virtio: fix queue setup consistency Olivier Matz
2017-12-06  5:25     ` Tiwei Bie [this message]
2017-12-07 14:14       ` Olivier MATZ
2017-12-08  2:17         ` Tiwei Bie
2018-02-01  3:14     ` Yao, Lei A
2018-02-01  8:27       ` Olivier Matz
2018-02-07  8:31         ` Xu, Qian Q
2018-02-07 22:01           ` Olivier Matz
2018-02-09  5:44             ` Wang, Zhihong
2018-02-09  8:59               ` Maxime Coquelin
2018-02-09  9:40                 ` Maxime Coquelin
2017-09-07 12:13   ` [PATCH v2 07/10] net/virtio: rationalize setting of Rx/Tx handlers Olivier Matz
2017-09-07 12:13   ` [PATCH v2 08/10] net/virtio: remove SSE check Olivier Matz
2017-09-07 12:13   ` [PATCH v2 09/10] net/virtio: keep Rx handler whatever the Tx queue config Olivier Matz
2017-09-07 12:13   ` [PATCH v2 10/10] net/virtio: fix Rx handler when checksum is requested Olivier Matz
2017-09-12  2:31   ` [PATCH v2 00/10] virtio fixes Yuanhan Liu

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20171206052528.xmxjxfkkurq7hhsp@debian-xvivbkq \
    --to=tiwei.bie@intel.com \
    --cc=antonio.fischetti@intel.com \
    --cc=dev@dpdk.org \
    --cc=maxime.coquelin@redhat.com \
    --cc=olivier.matz@6wind.com \
    --cc=stable@dpdk.org \
    --cc=stephen@networkplumber.org \
    --cc=yliu@fridaylinux.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.