From mboxrd@z Thu Jan 1 00:00:00 1970 From: Maxime Coquelin Subject: Re: [PATCH v11 0/9] implement packed virtqueues Date: Mon, 3 Dec 2018 16:34:44 +0100 Message-ID: <4d60bce7-7fb0-74bf-a1ac-a67b6275e513@redhat.com> References: <20181203141515.28368-1-jfreimann@redhat.com> <20181203152925.sofjto3toduxlpd6@jenstp.localdomain> Mime-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 8bit Cc: tiwei.bie@intel.com, Gavin.Hu@arm.com To: Jens Freimann , dev@dpdk.org Return-path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id 65D541B42D for ; Mon, 3 Dec 2018 16:34:51 +0100 (CET) In-Reply-To: <20181203152925.sofjto3toduxlpd6@jenstp.localdomain> Content-Language: en-US List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dev-bounces@dpdk.org Sender: "dev" On 12/3/18 4:29 PM, Jens Freimann wrote: > On Mon, Dec 03, 2018 at 03:15:06PM +0100, Jens Freimann wrote: >> >> This is a basic implementation of packed virtqueues as specified in the >> Virtio 1.1 draft. A compiled version of the current draft is available >> at https://github.com/oasis-tcs/virtio-docs.git (or as .pdf at >> https://github.com/oasis-tcs/virtio-docs/blob/master/virtio-v1.1-packed-wd10.pdf >> >> >> A packed virtqueue is different from a split virtqueue in that it >> consists of only a single descriptor ring that replaces available and >> used ring, index and descriptor pointers. >> >> Each descriptor is readable and writable and has a flags field. These >> flags >> will mark if a descriptor is available or used.  To detect new >> available descriptors >> even after the ring has wrapped, device and driver each have a >> single-bit wrap counter that is flipped from 0 to 1 and vice versa >> every time >> the last descriptor in the ring is used/made available. >> >> With this patch set I see a slight performance drop compared to split >> virtqueues. I tested according to >> http://doc.dpdk.org/guides/howto/pvp_reference_benchmark.html and I see >> a small performance drop of 3-4 percent in PVP and and similar numbers > > It's actually bigger with mergeable rx buffers turned off. I measured > 13% less mpps with packed virtqueues. That's interesting. I just tried Rxonly micro-benchmark, and I get almost same perf for mrg and non-mrg cases: MRG ON: 14.45Mpps MRG OFF: 14.57Mpps > regards, > Jens