From: 王志克 <wangzhike@jd.com>
To: Tiwei Bie <tiwei.bie@intel.com>
Cc: "dev@dpdk.org" <dev@dpdk.org>,
"bluca@debian.org" <bluca@debian.org>,
"yliu@fridaylinux.org" <yliu@fridaylinux.org>
Subject: Re: [dpdk-dev] net/virtio: fix vector Rx break caused by rxq flushing
Date: Wed, 3 Jan 2018 08:21:26 +0000 [thread overview]
Message-ID: <6DAF063A35010343823807B082E5681F41D84163@mbx05.360buyAD.local> (raw)
In-Reply-To: <20171230040209.b73z42ymlh4emjxe@debian-xvivbkq.sh.intel.com>
Hi Tiwei,
Thanks for your help and info.
I have another question about your previous fix below.
You mentioned that " Otherwise it will lead to incorrect packet collection for port state." Do you mean port statistics? Or such packets may leads to issue, like more TCP restransmission? Thanks.
commit d8227497ec5c3de75fe378e09fc9673ae097fa73
Author: Tiwei Bie <tiwei.bie@intel.com>
Date: Fri Oct 20 10:09:28 2017 +0800
net/virtio: flush Rx queues on start
After starting a device, the driver shouldn't deliver the
packets that already existed before the device is started
to applications. Otherwise it will lead to incorrect packet
collection for port state. This patch fixes this issue by
flushing the Rx queues when starting the device.
Br,
Wang Zhike
-----Original Message-----
From: Tiwei Bie [mailto:tiwei.bie@intel.com]
Sent: Saturday, December 30, 2017 12:02 PM
To: 王志克
Cc: dev@dpdk.org; bluca@debian.org; yliu@fridaylinux.org
Subject: Re: net/virtio: fix vector Rx break caused by rxq flushing
Hi Zhike,
On Fri, Dec 29, 2017 at 01:02:04PM +0000, 王志克 wrote:
> Hi tiwei,
>
> Can you please provide a patch for 16.11.4? Thanks.
>
Normally, most commits in the stable tree are backported
from the commits in the mainline tree which contains below
Cc line:
Cc: stable@dpdk.org
This patch also contains such line. So after this patch
is applied to the mainline tree, it will be backported.
If you need the fix right now, you can download the latest
patch (which has been applied to dpdk-next-virtio tree)
from here:
https://dpdk.org/dev/patchwork/patch/32061/
It can be applied to DPDK 16.11.4 with the patch command.
After the patching, one small change is needed to get it
work:
diff --git a/drivers/net/virtio/virtqueue.c b/drivers/net/virtio/virtqueue.c
index 7fd8604..0e24194 100644
--- a/drivers/net/virtio/virtqueue.c
+++ b/drivers/net/virtio/virtqueue.c
@@ -88,7 +88,7 @@ virtqueue_rxvq_flush(struct virtqueue *vq)
for (i = 0; i < nb_used; i++) {
used_idx = vq->vq_used_cons_idx & (vq->vq_nentries - 1);
uep = &vq->vq_ring.used->ring[used_idx];
- if (hw->use_simple_rx) {
+ if (hw->use_simple_rxtx) {
desc_idx = used_idx;
rte_pktmbuf_free(vq->sw_ring[desc_idx]);
vq->vq_free_cnt++;
@@ -104,7 +104,7 @@ virtqueue_rxvq_flush(struct virtqueue *vq)
vq->vq_used_cons_idx++;
}
- if (hw->use_simple_rx) {
+ if (hw->use_simple_rxtx) {
while (vq->vq_free_cnt >= RTE_VIRTIO_VPMD_RX_REARM_THRESH) {
virtio_rxq_rearm_vec(rxq);
if (virtqueue_kick_prepare(vq))
Besides, I'm not sure whether you are aware of this or not.
But just FYI, when you want to use the vector Rx of virtio
PMD, you need to be aware of the fact that the current
implementation of vector Rx doesn't really follow the virtio
spec. You can find more details in below link:
http://dpdk.org/ml/archives/dev/2017-December/084101.html
Best regards,
Tiwei Bie
next prev parent reply other threads:[~2018-01-03 8:21 UTC|newest]
Thread overview: 4+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-12-29 13:02 王志克
2017-12-30 4:02 ` Tiwei Bie
2018-01-03 8:21 ` 王志克 [this message]
2018-01-03 11:14 ` Tiwei Bie
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=6DAF063A35010343823807B082E5681F41D84163@mbx05.360buyAD.local \
--to=wangzhike@jd.com \
--cc=bluca@debian.org \
--cc=dev@dpdk.org \
--cc=tiwei.bie@intel.com \
--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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).