[dpdk-dev] [PATCH v11 0/9] implement packed virtqueues

Jens Freimann jfreimann at redhat.com
Mon Dec 3 16:29:25 CET 2018


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 


More information about the dev mailing list