From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxime Coquelin Subject: Re: [PATCH v4] vhost: Add indirect descriptors support to the TX path Date: Thu, 27 Oct 2016 12:35:11 +0200 Message-ID: <0ba8f8c9-2174-b3c1-4f07-f6911bffa6cd@redhat.com> References: <1474619303-16709-1-git-send-email-maxime.coquelin@redhat.com> <1474965769-24782-1-git-send-email-maxime.coquelin@redhat.com> <8F6C2BD409508844A0EFC19955BE09414E7CE6D1@SHSMSX103.ccr.corp.intel.com> <70cc3b89-d680-1519-add3-f38b228e65b5@redhat.com> <20161017132121.GG16751@yliu-dev.sh.intel.com> <8F6C2BD409508844A0EFC19955BE09414E7D8BDF@SHSMSX103.ccr.corp.intel.com> <20161027103317.GM16751@yliu-dev.sh.intel.com> Mime-Version: 1.0 Content-Type: text/plain; charset=windows-1252; format=flowed Content-Transfer-Encoding: 7bit Cc: "mst@redhat.com" , "dev@dpdk.org" , "vkaplans@redhat.com" To: Yuanhan Liu Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 8356D2E41 for ; Thu, 27 Oct 2016 12:35:15 +0200 (CEST) In-Reply-To: <20161027103317.GM16751@yliu-dev.sh.intel.com> List-Id: patches and discussions about DPDK List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 10/27/2016 12:33 PM, Yuanhan Liu wrote: > On Thu, Oct 27, 2016 at 11:10:34AM +0200, Maxime Coquelin wrote: >> Hi Zhihong, >> >> On 10/27/2016 11:00 AM, Wang, Zhihong wrote: >>> Hi Maxime, >>> >>> Seems indirect desc feature is causing serious performance >>> degradation on Haswell platform, about 20% drop for both >>> mrg=on and mrg=off (--txqflags=0xf00, non-vector version), >>> both iofwd and macfwd. >> I tested PVP (with macswap on guest) and Txonly/Rxonly on an Ivy Bridge >> platform, and didn't faced such a drop. > > I was actually wondering that may be the cause. I tested it with > my IvyBridge server as well, I saw no drop. > > Maybe you should find a similar platform (Haswell) and have a try? Yes, that's why I asked Zhihong whether he could test Txonly in guest to see if issue is reproducible like this. I will be easier for me to find an Haswell machine if it has not to be connected back to back to and HW/SW packet generator. Thanks, Maxime > > --yliu > >> Have you tried to pass indirect_desc=off to qemu cmdline to see if you >> recover the performance? >> >> Yuanhan, which platform did you use when you tested it with zero copy? >> >>> >>> I'm using RC2, and the CPU is Xeon E5-2699 v3 @ 2.30GHz. >>> >>> Could you please verify if this is true in your test? >> I'll try -rc1/-rc2 on my platform, and let you know. >> >> Thanks, >> Maxime >> >>> >>> >>> Thanks >>> Zhihong >>> >>>> -----Original Message----- >>>> From: Maxime Coquelin [mailto:maxime.coquelin@redhat.com] >>>> Sent: Monday, October 17, 2016 10:15 PM >>>> To: Yuanhan Liu >>>> Cc: Wang, Zhihong ; Xie, Huawei >>>> ; dev@dpdk.org; vkaplans@redhat.com; >>>> mst@redhat.com; stephen@networkplumber.org >>>> Subject: Re: [dpdk-dev] [PATCH v4] vhost: Add indirect descriptors support >>>> to the TX path >>>> >>>> >>>> >>>> On 10/17/2016 03:21 PM, Yuanhan Liu wrote: >>>>> On Mon, Oct 17, 2016 at 01:23:23PM +0200, Maxime Coquelin wrote: >>>>>>> On my side, I just setup 2 Windows 2016 VMs, and confirm the issue. >>>>>>> I'll continue the investigation early next week. >>>>>> >>>>>> The root cause is identified. >>>>>> When INDIRECT_DESC feature is negotiated, Windows guest uses indirect >>>>>> for both Tx and Rx descriptors, whereas Linux guests (Virtio PMD & >>>>>> virtio-net kernel driver) use indirect only for Tx. >>>>>> I'll implement indirect support for the Rx path in vhost lib, but the >>>>>> change will be too big for -rc release. >>>>>> I propose in the mean time to disable INDIRECT_DESC feature in vhost >>>>>> lib, we can still enable it locally for testing. >>>>>> >>>>>> Yuanhan, is it ok for you? >>>>> >>>>> That's okay. >>>> I'll send a patch to disable it then. >>>> >>>>> >>>>>> >>>>>>> Has anyone already tested Windows guest with vhost-net, which also >>>> has >>>>>>> indirect descs support? >>>>>> >>>>>> I tested and confirm it works with vhost-net. >>>>> >>>>> I'm a bit confused then. IIRC, vhost-net also doesn't support indirect >>>>> for Rx path, right? >>>> >>>> No, it does support it actually. >>>> I thought it didn't support too, I misread the Kernel implementation of >>>> vhost-net and virtio-net. Acutally, virtio-net makes use of indirect >>>> in Rx path when mergeable buffers is disabled. >>>> >>>> The confusion certainly comes from me, sorry about that. >>>> >>>> Maxime