From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: from mx1.redhat.com (mx1.redhat.com [209.132.183.28]) by dpdk.org (Postfix) with ESMTP id D1AF71B3B2 for ; Mon, 3 Dec 2018 16:29:27 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx01.intmail.prod.int.phx2.redhat.com [10.5.11.11]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id 1B8803082E56; Mon, 3 Dec 2018 15:29:27 +0000 (UTC) Received: from localhost (dhcp-192-205.str.redhat.com [10.33.192.205]) by smtp.corp.redhat.com (Postfix) with ESMTPS id A205E60140; Mon, 3 Dec 2018 15:29:26 +0000 (UTC) Date: Mon, 3 Dec 2018 16:29:25 +0100 From: Jens Freimann To: dev@dpdk.org Cc: tiwei.bie@intel.com, maxime.coquelin@redhat.com, Gavin.Hu@arm.com Message-ID: <20181203152925.sofjto3toduxlpd6@jenstp.localdomain> References: <20181203141515.28368-1-jfreimann@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii; format=flowed Content-Disposition: inline In-Reply-To: <20181203141515.28368-1-jfreimann@redhat.com> User-Agent: NeoMutt/20180716 X-Scanned-By: MIMEDefang 2.79 on 10.5.11.11 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.46]); Mon, 03 Dec 2018 15:29:27 +0000 (UTC) Subject: Re: [dpdk-dev] [PATCH v11 0/9] implement packed virtqueues X-BeenThere: dev@dpdk.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: DPDK patches and discussions List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , X-List-Received-Date: Mon, 03 Dec 2018 15:29:28 -0000 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. regards, Jens