Message ID | 1476717036-17399-1-git-send-email-maxime.coquelin@redhat.com (mailing list archive) |
---|---|
State | Not Applicable, archived |
Delegated to: | Yuanhan Liu |
Headers |
Return-Path: <dev-bounces@dpdk.org> X-Original-To: patchwork@dpdk.org Delivered-To: patchwork@dpdk.org Received: from [92.243.14.124] (localhost [IPv6:::1]) by dpdk.org (Postfix) with ESMTP id 0CA246CB5; Mon, 17 Oct 2016 17:10:48 +0200 (CEST) Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 1503C2952 for <dev@dpdk.org>; Mon, 17 Oct 2016 17:10:47 +0200 (CEST) Received: from int-mx13.intmail.prod.int.phx2.redhat.com (int-mx13.intmail.prod.int.phx2.redhat.com [10.5.11.26]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 7F5A8624A1; Mon, 17 Oct 2016 15:10:46 +0000 (UTC) Received: from max-t460s.redhat.com (vpn1-5-44.ams2.redhat.com [10.36.5.44]) by int-mx13.intmail.prod.int.phx2.redhat.com (8.14.4/8.14.4) with ESMTP id u9HFAi5O024800; Mon, 17 Oct 2016 11:10:45 -0400 From: Maxime Coquelin <maxime.coquelin@redhat.com> To: yuanhan.liu@linux.intel.com, dev@dpdk.org Cc: zhihong.wang@intel.com, ciara.loftus@intel.com, Maxime Coquelin <maxime.coquelin@redhat.com> Date: Mon, 17 Oct 2016 17:10:36 +0200 Message-Id: <1476717036-17399-1-git-send-email-maxime.coquelin@redhat.com> X-Scanned-By: MIMEDefang 2.68 on 10.5.11.26 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.39]); Mon, 17 Oct 2016 15:10:46 +0000 (UTC) Subject: [dpdk-dev] [PATCH] vhost: disable indirect descriptors feature X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: patches and discussions about DPDK <dev.dpdk.org> List-Unsubscribe: <http://dpdk.org/ml/options/dev>, <mailto:dev-request@dpdk.org?subject=unsubscribe> List-Archive: <http://dpdk.org/ml/archives/dev/> List-Post: <mailto:dev@dpdk.org> List-Help: <mailto:dev-request@dpdk.org?subject=help> List-Subscribe: <http://dpdk.org/ml/listinfo/dev>, <mailto:dev-request@dpdk.org?subject=subscribe> Errors-To: dev-bounces@dpdk.org Sender: "dev" <dev-bounces@dpdk.org> |
Commit Message
Maxime Coquelin
Oct. 17, 2016, 3:10 p.m. UTC
Commit 2304dd73d287 ("vhost: support indirect Tx descriptors")
adds support for indirect descriptors for Tx, but not for Rx.
The problem is that it does not work with windows guests, which
uses indirect descriptors for the Rx, and also with Linux guests
when using kernel driver with mergeable buffers feature disabled.
While indirect descriptors support is also added to the Rx path,
let's disable the feature.
Reported-by: Zhihong Wang <zhihong.wang@intel.com>
Reported-by: Ciara Loftus <ciara.loftus@intel.com>
Cc: Yuanhan Liu <yuanhan.liu@linux.intel.com>
Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com>
---
lib/librte_vhost/vhost.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
Comments
Hi Yuanhan, On 10/17/2016 05:10 PM, Maxime Coquelin wrote: > Commit 2304dd73d287 ("vhost: support indirect Tx descriptors") > adds support for indirect descriptors for Tx, but not for Rx. > > The problem is that it does not work with windows guests, which > uses indirect descriptors for the Rx, and also with Linux guests > when using kernel driver with mergeable buffers feature disabled. > > While indirect descriptors support is also added to the Rx path, > let's disable the feature. > > Reported-by: Zhihong Wang <zhihong.wang@intel.com> > Reported-by: Ciara Loftus <ciara.loftus@intel.com> > Cc: Yuanhan Liu <yuanhan.liu@linux.intel.com> > Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> > --- > lib/librte_vhost/vhost.c | 3 +-- > 1 file changed, 1 insertion(+), 2 deletions(-) > > diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c > index 469117a..f5f8f92 100644 > --- a/lib/librte_vhost/vhost.c > +++ b/lib/librte_vhost/vhost.c > @@ -65,8 +65,7 @@ > (1ULL << VIRTIO_NET_F_CSUM) | \ > (1ULL << VIRTIO_NET_F_GUEST_CSUM) | \ > (1ULL << VIRTIO_NET_F_GUEST_TSO4) | \ > - (1ULL << VIRTIO_NET_F_GUEST_TSO6) | \ > - (1ULL << VIRTIO_RING_F_INDIRECT_DESC)) > + (1ULL << VIRTIO_NET_F_GUEST_TSO6)) > > uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES; I have implemented Indirect descs for the Rx path yesterday. It deserves more testing, but early tests show it fix the issues found with VIRTIO_RING_F_INDIRECT_DESC (both with and without mergeable buffers). Thanks to Zhihong series you reworked, the changes to be done for mergeable buffers case is greatly simplified. I'll send the series later today. Thanks, Maxime
On Tue, Oct 18, 2016 at 09:04:44AM +0200, Maxime Coquelin wrote: > Hi Yuanhan, > > On 10/17/2016 05:10 PM, Maxime Coquelin wrote: > >Commit 2304dd73d287 ("vhost: support indirect Tx descriptors") > >adds support for indirect descriptors for Tx, but not for Rx. > > > >The problem is that it does not work with windows guests, which > >uses indirect descriptors for the Rx, and also with Linux guests > >when using kernel driver with mergeable buffers feature disabled. > > > >While indirect descriptors support is also added to the Rx path, > >let's disable the feature. > > > >Reported-by: Zhihong Wang <zhihong.wang@intel.com> > >Reported-by: Ciara Loftus <ciara.loftus@intel.com> > >Cc: Yuanhan Liu <yuanhan.liu@linux.intel.com> > >Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> > >--- > > lib/librte_vhost/vhost.c | 3 +-- > > 1 file changed, 1 insertion(+), 2 deletions(-) > > > >diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c > >index 469117a..f5f8f92 100644 > >--- a/lib/librte_vhost/vhost.c > >+++ b/lib/librte_vhost/vhost.c > >@@ -65,8 +65,7 @@ > > (1ULL << VIRTIO_NET_F_CSUM) | \ > > (1ULL << VIRTIO_NET_F_GUEST_CSUM) | \ > > (1ULL << VIRTIO_NET_F_GUEST_TSO4) | \ > >- (1ULL << VIRTIO_NET_F_GUEST_TSO6) | \ > >- (1ULL << VIRTIO_RING_F_INDIRECT_DESC)) > >+ (1ULL << VIRTIO_NET_F_GUEST_TSO6)) > > > > uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES; > > I have implemented Indirect descs for the Rx path yesterday. > It deserves more testing, but early tests show it fix the issues found > with VIRTIO_RING_F_INDIRECT_DESC (both with and without mergeable > buffers). > > > Thanks to Zhihong series you reworked, the changes to be done for > mergeable buffers case is greatly simplified. > I'll send the series later today. Do you mean the v6 from Zhihong? Unluckily, it will not be merged. That series has been simplified to not rewrite the enqueue from scratch. See V7. For this patch, I think you should also update (or remove?) the related section in the release note. --yliu
On 10/18/2016 10:12 AM, Yuanhan Liu wrote: > On Tue, Oct 18, 2016 at 09:04:44AM +0200, Maxime Coquelin wrote: >> Hi Yuanhan, >> >> On 10/17/2016 05:10 PM, Maxime Coquelin wrote: >>> Commit 2304dd73d287 ("vhost: support indirect Tx descriptors") >>> adds support for indirect descriptors for Tx, but not for Rx. >>> >>> The problem is that it does not work with windows guests, which >>> uses indirect descriptors for the Rx, and also with Linux guests >>> when using kernel driver with mergeable buffers feature disabled. >>> >>> While indirect descriptors support is also added to the Rx path, >>> let's disable the feature. >>> >>> Reported-by: Zhihong Wang <zhihong.wang@intel.com> >>> Reported-by: Ciara Loftus <ciara.loftus@intel.com> >>> Cc: Yuanhan Liu <yuanhan.liu@linux.intel.com> >>> Signed-off-by: Maxime Coquelin <maxime.coquelin@redhat.com> >>> --- >>> lib/librte_vhost/vhost.c | 3 +-- >>> 1 file changed, 1 insertion(+), 2 deletions(-) >>> >>> diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c >>> index 469117a..f5f8f92 100644 >>> --- a/lib/librte_vhost/vhost.c >>> +++ b/lib/librte_vhost/vhost.c >>> @@ -65,8 +65,7 @@ >>> (1ULL << VIRTIO_NET_F_CSUM) | \ >>> (1ULL << VIRTIO_NET_F_GUEST_CSUM) | \ >>> (1ULL << VIRTIO_NET_F_GUEST_TSO4) | \ >>> - (1ULL << VIRTIO_NET_F_GUEST_TSO6) | \ >>> - (1ULL << VIRTIO_RING_F_INDIRECT_DESC)) >>> + (1ULL << VIRTIO_NET_F_GUEST_TSO6)) >>> >>> uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES; >> >> I have implemented Indirect descs for the Rx path yesterday. >> It deserves more testing, but early tests show it fix the issues found >> with VIRTIO_RING_F_INDIRECT_DESC (both with and without mergeable >> buffers). >> >> >> Thanks to Zhihong series you reworked, the changes to be done for >> mergeable buffers case is greatly simplified. >> I'll send the series later today. > > Do you mean the v6 from Zhihong? Unluckily, it will not be merged. That > series has been simplified to not rewrite the enqueue from scratch. See > V7. No, I meant the v7. > > For this patch, I think you should also update (or remove?) the related > section in the release note. Yes, sure. Thanks, Maxime
On Tue, Oct 18, 2016 at 10:13:54AM +0200, Maxime Coquelin wrote: > >>Thanks to Zhihong series you reworked, the changes to be done for > >>mergeable buffers case is greatly simplified. > >>I'll send the series later today. > > > >Do you mean the v6 from Zhihong? Unluckily, it will not be merged. That > >series has been simplified to not rewrite the enqueue from scratch. See > >V7. > No, I meant the v7. Oh, glad to know that the rework helps here :) --yliu > > > > >For this patch, I think you should also update (or remove?) the related > >section in the release note. > Yes, sure. > > Thanks, > Maxime
diff --git a/lib/librte_vhost/vhost.c b/lib/librte_vhost/vhost.c index 469117a..f5f8f92 100644 --- a/lib/librte_vhost/vhost.c +++ b/lib/librte_vhost/vhost.c @@ -65,8 +65,7 @@ (1ULL << VIRTIO_NET_F_CSUM) | \ (1ULL << VIRTIO_NET_F_GUEST_CSUM) | \ (1ULL << VIRTIO_NET_F_GUEST_TSO4) | \ - (1ULL << VIRTIO_NET_F_GUEST_TSO6) | \ - (1ULL << VIRTIO_RING_F_INDIRECT_DESC)) + (1ULL << VIRTIO_NET_F_GUEST_TSO6)) uint64_t VHOST_FEATURES = VHOST_SUPPORTED_FEATURES;