[dpdk-dev] [PATCH 01/17] net/virtio: vring init for packed queues
Tiwei Bie
tiwei.bie at intel.com
Mon Mar 19 09:03:55 CET 2018
On Fri, Mar 16, 2018 at 04:21:04PM +0100, Jens Freimann wrote:
> Add and initialize descriptor data structures.
>
> Signed-off-by: Jens Freimann <jfreimann at redhat.com>
> ---
[...]
> --- a/drivers/net/virtio/virtio_ring.h
> +++ b/drivers/net/virtio/virtio_ring.h
> @@ -9,6 +9,7 @@
>
> #include <rte_common.h>
>
> +
There is no need to add this blank line.
> /* This marks a buffer as continuing via the next field. */
> #define VRING_DESC_F_NEXT 1
> /* This marks a buffer as write-only (otherwise read-only). */
> @@ -54,11 +55,23 @@ struct vring_used {
> struct vring_used_elem ring[0];
> };
[...]
> struct vring {
> unsigned int num;
> struct vring_desc *desc;
> struct vring_avail *avail;
> struct vring_used *used;
> + struct vring_desc_packed *desc_packed;
Maybe it's better to use anonymous union here.
> };
>
> /* The standard layout for the ring is a continuous chunk of memory which
> @@ -95,10 +108,13 @@ struct vring {
> #define vring_avail_event(vr) (*(uint16_t *)&(vr)->used->ring[(vr)->num])
>
> static inline size_t
> -vring_size(unsigned int num, unsigned long align)
> +vring_size(struct virtio_hw *hw, unsigned int num, unsigned long align)
> {
> size_t size;
>
> + if (vtpci_packed_queue(hw))
> + return num * sizeof(struct vring_desc_packed);
> +
Besides the descriptors, the ring also contains event
suppression structures.
Thanks
More information about the dev
mailing list