Thread (39 messages) 39 messages, 4 authors, 2018-04-04

Re: [PATCH 01/17] net/virtio: vring init for packed queues

From: Tiwei Bie <hidden>
Date: 2018-03-19 08:05:31

On Fri, Mar 16, 2018 at 04:21:04PM +0100, Jens Freimann wrote:
Add and initialize descriptor data structures.

Signed-off-by: Jens Freimann <redacted>
---
[...]
quoted hunk ↗ jump to hunk
--- 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.
quoted hunk ↗ jump to hunk
 /* 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.
quoted hunk ↗ jump to hunk
 };
 
 /* 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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help