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 65D541B42D for ; Mon, 3 Dec 2018 16:34:51 +0100 (CET) Received: from smtp.corp.redhat.com (int-mx06.intmail.prod.int.phx2.redhat.com [10.5.11.16]) (using TLSv1.2 with cipher AECDH-AES256-SHA (256/256 bits)) (No client certificate requested) by mx1.redhat.com (Postfix) with ESMTPS id B1CB08EC; Mon, 3 Dec 2018 15:34:50 +0000 (UTC) Received: from [10.36.112.44] (ovpn-112-44.ams2.redhat.com [10.36.112.44]) by smtp.corp.redhat.com (Postfix) with ESMTPS id 470696932D; Mon, 3 Dec 2018 15:34:45 +0000 (UTC) To: Jens Freimann , dev@dpdk.org Cc: tiwei.bie@intel.com, Gavin.Hu@arm.com References: <20181203141515.28368-1-jfreimann@redhat.com> <20181203152925.sofjto3toduxlpd6@jenstp.localdomain> From: Maxime Coquelin Message-ID: <4d60bce7-7fb0-74bf-a1ac-a67b6275e513@redhat.com> Date: Mon, 3 Dec 2018 16:34:44 +0100 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.2.1 MIME-Version: 1.0 In-Reply-To: <20181203152925.sofjto3toduxlpd6@jenstp.localdomain> Content-Type: text/plain; charset=utf-8; format=flowed Content-Language: en-US Content-Transfer-Encoding: 8bit X-Scanned-By: MIMEDefang 2.79 on 10.5.11.16 X-Greylist: Sender IP whitelisted, not delayed by milter-greylist-4.5.16 (mx1.redhat.com [10.5.110.28]); Mon, 03 Dec 2018 15:34:50 +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:34:51 -0000 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