search for: vring_packed_size

Displaying 19 results from an estimated 19 matches for "vring_packed_size".

2018 Mar 16
3
[PATCH RFC 2/2] virtio_ring: support packed ring
...do you have any suggestions about the API > design for packed ring in uapi header? Currently > I introduced below two new helpers: > > static inline void vring_packed_init(struct vring_packed *vr, unsigned int num, > void *p, unsigned long align); > static inline unsigned vring_packed_size(unsigned int num, unsigned long align); > > When new rings are introduced in the future, above > helpers can't be reused. Maybe we should make the > helpers be able to determine the ring type? Let's wait for Michael's comment here. Generally, I fail to understand why vring...
2018 Mar 16
3
[PATCH RFC 2/2] virtio_ring: support packed ring
...do you have any suggestions about the API > design for packed ring in uapi header? Currently > I introduced below two new helpers: > > static inline void vring_packed_init(struct vring_packed *vr, unsigned int num, > void *p, unsigned long align); > static inline unsigned vring_packed_size(unsigned int num, unsigned long align); > > When new rings are introduced in the future, above > helpers can't be reused. Maybe we should make the > helpers be able to determine the ring type? Let's wait for Michael's comment here. Generally, I fail to understand why vring...
2018 Mar 16
0
[PATCH RFC 2/2] virtio_ring: support packed ring
...ut the API > > design for packed ring in uapi header? Currently > > I introduced below two new helpers: > > > > static inline void vring_packed_init(struct vring_packed *vr, unsigned int num, > > void *p, unsigned long align); > > static inline unsigned vring_packed_size(unsigned int num, unsigned long align); > > > > When new rings are introduced in the future, above > > helpers can't be reused. Maybe we should make the > > helpers be able to determine the ring type? > > Let's wait for Michael's comment here. Generally,...
2018 Apr 13
0
[RFC v2] virtio: support packed ring
...packed_desc_event driver; > + * > + * // Device Event Suppression > + * struct vring_packed_desc_event device; Maybe that's how our driver does it but it's not based on spec so I don't think this belongs in the header. > + * }; > + */ > + > +static inline unsigned vring_packed_size(unsigned int num, unsigned long align) > +{ > + return ((sizeof(struct vring_packed_desc) * num + align - 1) > + & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; > +} > + Cant say this API makes sense for me. > #endif /* _UAPI_LINUX_VIRTIO_RING_H */ > --...
2018 Feb 23
0
[PATCH RFC 1/2] virtio: introduce packed ring defines
...ng_packed *vr, unsigned int num, + void *p, unsigned long align) +{ + vr->num = num; + vr->desc = p; + vr->driver = (void *)(((uintptr_t)p + sizeof(struct vring_packed_desc) + * num + align - 1) & ~(align - 1)); + vr->device = vr->driver + 1; +} + +static inline unsigned vring_packed_size(unsigned int num, unsigned long align) +{ + return ((sizeof(struct vring_packed_desc) * num + align - 1) + & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; +} + #endif /* _UAPI_LINUX_VIRTIO_RING_H */ -- 2.14.1
2018 Mar 16
2
[PATCH RFC 2/2] virtio_ring: support packed ring
On 2018?03?16? 15:40, Tiwei Bie wrote: > On Fri, Mar 16, 2018 at 02:44:12PM +0800, Jason Wang wrote: >> On 2018?03?16? 14:10, Tiwei Bie wrote: >>> On Fri, Mar 16, 2018 at 12:03:25PM +0800, Jason Wang wrote: >>>> On 2018?02?23? 19:18, Tiwei Bie wrote: >>>>> Signed-off-by: Tiwei Bie <tiwei.bie at intel.com> >>>>> ---
2018 Mar 16
2
[PATCH RFC 2/2] virtio_ring: support packed ring
On 2018?03?16? 15:40, Tiwei Bie wrote: > On Fri, Mar 16, 2018 at 02:44:12PM +0800, Jason Wang wrote: >> On 2018?03?16? 14:10, Tiwei Bie wrote: >>> On Fri, Mar 16, 2018 at 12:03:25PM +0800, Jason Wang wrote: >>>> On 2018?02?23? 19:18, Tiwei Bie wrote: >>>>> Signed-off-by: Tiwei Bie <tiwei.bie at intel.com> >>>>> ---
2018 Mar 16
0
[PATCH RFC 2/2] virtio_ring: support packed ring
...ibe my question well. I mean do you have any suggestions about the API design for packed ring in uapi header? Currently I introduced below two new helpers: static inline void vring_packed_init(struct vring_packed *vr, unsigned int num, void *p, unsigned long align); static inline unsigned vring_packed_size(unsigned int num, unsigned long align); When new rings are introduced in the future, above helpers can't be reused. Maybe we should make the helpers be able to determine the ring type? Best regards, Tiwei Bie > > Thanks > > > > > Best regards, > > Tiwei Bie >...
2018 Apr 01
8
[RFC v2] virtio: support packed ring
...vq->desc_state, 0, num * sizeof(struct vring_desc_state)); return &vq->vq; } @@ -1056,6 +1717,22 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, } } +static inline int +__vring_size(unsigned int num, unsigned long align, bool packed) +{ + return packed ? vring_packed_size(num, align) : vring_size(num, align); +} + +static inline void vring_packed_init(struct vring_packed *vr, unsigned int num, + void *p, unsigned long align) +{ + vr->num = num; + vr->desc = p; + vr->driver = (void *)(((uintptr_t)p + sizeof(struct vring_packed_desc) + * num + align...
2018 Apr 01
8
[RFC v2] virtio: support packed ring
...vq->desc_state, 0, num * sizeof(struct vring_desc_state)); return &vq->vq; } @@ -1056,6 +1717,22 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, } } +static inline int +__vring_size(unsigned int num, unsigned long align, bool packed) +{ + return packed ? vring_packed_size(num, align) : vring_size(num, align); +} + +static inline void vring_packed_init(struct vring_packed *vr, unsigned int num, + void *p, unsigned long align) +{ + vr->num = num; + vr->desc = p; + vr->driver = (void *)(((uintptr_t)p + sizeof(struct vring_packed_desc) + * num + align...
2018 Feb 23
5
[PATCH RFC 0/2] Packed ring for virtio
Hello everyone, This RFC implements a subset of packed ring which is described at https://github.com/oasis-tcs/virtio-docs/blob/master/virtio-v1.1-packed-wd08.pdf The code was tested with DPDK vhost (testpmd/vhost-PMD) implemented by Jens at http://dpdk.org/ml/archives/dev/2018-January/089417.html Minor changes are needed for the vhost code, e.g. to kick the guest. It's not a complete
2018 Apr 10
0
[RFC v2] virtio: support packed ring
...> > return &vq->vq; > } > @@ -1056,6 +1717,22 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, > } > } > > +static inline int > +__vring_size(unsigned int num, unsigned long align, bool packed) > +{ > + return packed ? vring_packed_size(num, align) : vring_size(num, align); > +} > + > +static inline void vring_packed_init(struct vring_packed *vr, unsigned int num, > + void *p, unsigned long align) > +{ > + vr->num = num; > + vr->desc = p; > + vr->driver = (void *)(((uintptr_t)p + sizeof(str...
2018 Apr 13
0
[RFC v2] virtio: support packed ring
...> > return &vq->vq; > } > @@ -1056,6 +1717,22 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, > } > } > > +static inline int > +__vring_size(unsigned int num, unsigned long align, bool packed) > +{ > + return packed ? vring_packed_size(num, align) : vring_size(num, align); > +} > + > +static inline void vring_packed_init(struct vring_packed *vr, unsigned int num, > + void *p, unsigned long align) > +{ > + vr->num = num; > + vr->desc = p; > + vr->driver = (void *)(((uintptr_t)p + sizeof(str...
2018 Mar 16
2
[PATCH RFC 2/2] virtio_ring: support packed ring
...t; return &vq->vq; > } > @@ -1058,6 +1548,14 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, > } > } > > +static inline int > +__vring_size(unsigned int num, unsigned long align, bool packed) > +{ > + if (packed) > + return vring_packed_size(num, align); > + return vring_size(num, align); > +} > + > struct virtqueue *vring_create_virtqueue( > unsigned int index, > unsigned int num, > @@ -1074,7 +1572,8 @@ struct virtqueue *vring_create_virtqueue( > void *queue = NULL; > dma_addr_t dma_addr; >...
2018 Mar 16
2
[PATCH RFC 2/2] virtio_ring: support packed ring
...t; return &vq->vq; > } > @@ -1058,6 +1548,14 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, > } > } > > +static inline int > +__vring_size(unsigned int num, unsigned long align, bool packed) > +{ > + if (packed) > + return vring_packed_size(num, align); > + return vring_size(num, align); > +} > + > struct virtqueue *vring_create_virtqueue( > unsigned int index, > unsigned int num, > @@ -1074,7 +1572,8 @@ struct virtqueue *vring_create_virtqueue( > void *queue = NULL; > dma_addr_t dma_addr; >...
2018 Feb 23
0
[PATCH RFC 2/2] virtio_ring: support packed ring
...;desc_state, 0, num * sizeof(struct vring_desc_state)); return &vq->vq; } @@ -1058,6 +1548,14 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, } } +static inline int +__vring_size(unsigned int num, unsigned long align, bool packed) +{ + if (packed) + return vring_packed_size(num, align); + return vring_size(num, align); +} + struct virtqueue *vring_create_virtqueue( unsigned int index, unsigned int num, @@ -1074,7 +1572,8 @@ struct virtqueue *vring_create_virtqueue( void *queue = NULL; dma_addr_t dma_addr; size_t queue_size_in_bytes; - struct vring vring; +...
2018 Mar 16
0
[PATCH RFC 2/2] virtio_ring: support packed ring
...; } > > @@ -1058,6 +1548,14 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, > > } > > } > > +static inline int > > +__vring_size(unsigned int num, unsigned long align, bool packed) > > +{ > > + if (packed) > > + return vring_packed_size(num, align); > > + return vring_size(num, align); > > +} > > + > > struct virtqueue *vring_create_virtqueue( > > unsigned int index, > > unsigned int num, > > @@ -1074,7 +1572,8 @@ struct virtqueue *vring_create_virtqueue( > > void *queue =...
2018 Mar 16
2
[PATCH RFC 2/2] virtio_ring: support packed ring
...8,6 +1548,14 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, >>> } >>> } >>> +static inline int >>> +__vring_size(unsigned int num, unsigned long align, bool packed) >>> +{ >>> + if (packed) >>> + return vring_packed_size(num, align); >>> + return vring_size(num, align); >>> +} >>> + >>> struct virtqueue *vring_create_virtqueue( >>> unsigned int index, >>> unsigned int num, >>> @@ -1074,7 +1572,8 @@ struct virtqueue *vring_create_virtqueue( &g...
2018 Mar 16
2
[PATCH RFC 2/2] virtio_ring: support packed ring
...8,6 +1548,14 @@ static void vring_free_queue(struct virtio_device *vdev, size_t size, >>> } >>> } >>> +static inline int >>> +__vring_size(unsigned int num, unsigned long align, bool packed) >>> +{ >>> + if (packed) >>> + return vring_packed_size(num, align); >>> + return vring_size(num, align); >>> +} >>> + >>> struct virtqueue *vring_create_virtqueue( >>> unsigned int index, >>> unsigned int num, >>> @@ -1074,7 +1572,8 @@ struct virtqueue *vring_create_virtqueue( &g...