search for: vring_unmap_state_packed

Displaying 20 results from an estimated 20 matches for "vring_unmap_state_packed".

2018 Nov 07
2
[PATCH net-next v2 3/5] virtio_ring: add packed ring support
...t_used_idx != virtio16_to_cpu(_vq->vdev, vq->vring.used->idx); > } > > @@ -757,6 +765,72 @@ static inline unsigned vring_size_packed(unsigned int num, unsigned long align) > & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; > } > > +static void vring_unmap_state_packed(const struct vring_virtqueue *vq, > + struct vring_desc_state_packed *state) > +{ > + u16 flags; > + > + if (!vring_use_dma_api(vq->vq.vdev)) > + return; > + > + flags = state->flags; > + > + if (flags & VRING_DESC_F_INDIRECT) { > + dma_unmap_sin...
2018 Nov 07
2
[PATCH net-next v2 3/5] virtio_ring: add packed ring support
...t_used_idx != virtio16_to_cpu(_vq->vdev, vq->vring.used->idx); > } > > @@ -757,6 +765,72 @@ static inline unsigned vring_size_packed(unsigned int num, unsigned long align) > & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; > } > > +static void vring_unmap_state_packed(const struct vring_virtqueue *vq, > + struct vring_desc_state_packed *state) > +{ > + u16 flags; > + > + if (!vring_use_dma_api(vq->vq.vdev)) > + return; > + > + flags = state->flags; > + > + if (flags & VRING_DESC_F_INDIRECT) { > + dma_unmap_sin...
2018 Nov 08
0
[PATCH net-next v2 3/5] virtio_ring: add packed ring support
...r > > packed ring. > > > > Signed-off-by: Tiwei Bie <tiwei.bie at intel.com> > > --- > > drivers/virtio/virtio_ring.c | 495 ++++++++++++++++++++++++++++++++++- > > 1 file changed, 487 insertions(+), 8 deletions(-) [...] > > > > +static void vring_unmap_state_packed(const struct vring_virtqueue *vq, > > + struct vring_desc_state_packed *state) > > +{ > > + u16 flags; > > + > > + if (!vring_use_dma_api(vq->vq.vdev)) > > + return; > > + > > + flags = state->flags; > > + > > + if (flags &a...
2018 May 29
2
[RFC v5 3/5] virtio_ring: add packed ring support
...scriptor flags. */ > int next; /* The next desc state. */ > }; > > @@ -758,6 +764,72 @@ static inline unsigned vring_size_packed(unsigned int num, unsigned long align) > & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; > } > > +static void vring_unmap_state_packed(const struct vring_virtqueue *vq, > + struct vring_desc_state_packed *state) > +{ > + u16 flags; > + > + if (!vring_use_dma_api(vq->vq.vdev)) > + return; > + > + flags = state->flags; > + > + if (flags & VRING_DESC_F_INDIRECT) { > + dma_unmap_sin...
2018 May 29
2
[RFC v5 3/5] virtio_ring: add packed ring support
...scriptor flags. */ > int next; /* The next desc state. */ > }; > > @@ -758,6 +764,72 @@ static inline unsigned vring_size_packed(unsigned int num, unsigned long align) > & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; > } > > +static void vring_unmap_state_packed(const struct vring_virtqueue *vq, > + struct vring_desc_state_packed *state) > +{ > + u16 flags; > + > + if (!vring_use_dma_api(vq->vq.vdev)) > + return; > + > + flags = state->flags; > + > + if (flags & VRING_DESC_F_INDIRECT) { > + dma_unmap_sin...
2018 May 22
0
[RFC v5 3/5] virtio_ring: add packed ring support
...n; /* Buffer length. */ + u16 flags; /* Descriptor flags. */ int next; /* The next desc state. */ }; @@ -758,6 +764,72 @@ static inline unsigned vring_size_packed(unsigned int num, unsigned long align) & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; } +static void vring_unmap_state_packed(const struct vring_virtqueue *vq, + struct vring_desc_state_packed *state) +{ + u16 flags; + + if (!vring_use_dma_api(vq->vq.vdev)) + return; + + flags = state->flags; + + if (flags & VRING_DESC_F_INDIRECT) { + dma_unmap_single(vring_dma_dev(vq), + state->addr, state->...
2018 Jul 11
0
[PATCH net-next v2 3/5] virtio_ring: add packed ring support
...t;weak_barriers); return (u16)last_used_idx != virtio16_to_cpu(_vq->vdev, vq->vring.used->idx); } @@ -757,6 +765,72 @@ static inline unsigned vring_size_packed(unsigned int num, unsigned long align) & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; } +static void vring_unmap_state_packed(const struct vring_virtqueue *vq, + struct vring_desc_state_packed *state) +{ + u16 flags; + + if (!vring_use_dma_api(vq->vq.vdev)) + return; + + flags = state->flags; + + if (flags & VRING_DESC_F_INDIRECT) { + dma_unmap_single(vring_dma_dev(vq), + state->addr, state->...
2018 May 29
0
[RFC v5 3/5] virtio_ring: add packed ring support
...t; + int *next; > > + > > + /* Clear data ptr. */ > > + vq->desc_state_packed[id].data = NULL; > > + > > + next = &id; > > + for (i = 0; i < vq->desc_state_packed[id].num; i++) { > > + state = &vq->desc_state_packed[*next]; > > + vring_unmap_state_packed(vq, state); > > + next = &vq->desc_state_packed[*next].next; > > Have a short discussion with Michael. It looks like the only thing we care > is DMA address and length here. The length tracked by desc_state_packed[] is also necessary when INDIRECT is used and the buffers ar...
2018 Sep 07
1
[PATCH net-next v2 3/5] virtio_ring: add packed ring support
....used->idx); > } why is this changing the split queue implementation? > > @@ -757,6 +765,72 @@ static inline unsigned vring_size_packed(unsigned int num, unsigned long align) > & ~(align - 1)) + sizeof(struct vring_packed_desc_event) * 2; > } > > +static void vring_unmap_state_packed(const struct vring_virtqueue *vq, > + struct vring_desc_state_packed *state) > +{ > + u16 flags; > + > + if (!vring_use_dma_api(vq->vq.vdev)) > + return; > + > + flags = state->flags; > + > + if (flags & VRING_DESC_F_INDIRECT) { > + dma_unmap_sin...
2018 Dec 07
0
[RFC 3/3] virtio_ring: use new vring flags
...q->split.avail_flags_shadow & + BIT(VRING_SPLIT_AVAIL_F_NO_INTERRUPT)) { + vq->split.avail_flags_shadow &= + ~BIT(VRING_SPLIT_AVAIL_F_NO_INTERRUPT); if (!vq->event) vq->split.vring.avail->flags = cpu_to_virtio16(_vq->vdev, @@ -912,15 +925,15 @@ static void vring_unmap_state_packed(const struct vring_virtqueue *vq, flags = state->flags; - if (flags & VRING_DESC_F_INDIRECT) { + if (flags & BIT(VRING_PACKED_DESC_F_INDIRECT)) { dma_unmap_single(vring_dma_dev(vq), state->addr, state->len, - (flags & VRING_DESC_F_WRITE) ? + (flags &...
2018 Jul 11
15
[PATCH net-next v2 0/5] virtio: support packed ring
Hello everyone, This patch set implements packed ring support in virtio driver. Some functional tests have been done with Jason's packed ring implementation in vhost: https://lkml.org/lkml/2018/7/3/33 Both of ping and netperf worked as expected. v1 -> v2: - Use READ_ONCE() to read event off_wrap and flags together (Jason); - Add comments related to ccw (Jason); RFC (v6) -> v1: -
2018 Jul 11
15
[PATCH net-next v2 0/5] virtio: support packed ring
Hello everyone, This patch set implements packed ring support in virtio driver. Some functional tests have been done with Jason's packed ring implementation in vhost: https://lkml.org/lkml/2018/7/3/33 Both of ping and netperf worked as expected. v1 -> v2: - Use READ_ONCE() to read event off_wrap and flags together (Jason); - Add comments related to ccw (Jason); RFC (v6) -> v1: -
2018 May 22
9
[RFC v5 0/5] virtio: support packed ring
Hello everyone, This RFC implements packed ring support in virtio driver. Some simple functional tests have been done with Jason's packed ring implementation in vhost (RFC v4): https://lkml.org/lkml/2018/5/16/501 Both of ping and netperf worked as expected w/ EVENT_IDX disabled. Ping worked as expected w/ EVENT_IDX enabled, but netperf didn't (A hack has been added in the driver to
2018 May 22
9
[RFC v5 0/5] virtio: support packed ring
Hello everyone, This RFC implements packed ring support in virtio driver. Some simple functional tests have been done with Jason's packed ring implementation in vhost (RFC v4): https://lkml.org/lkml/2018/5/16/501 Both of ping and netperf worked as expected w/ EVENT_IDX disabled. Ping worked as expected w/ EVENT_IDX enabled, but netperf didn't (A hack has been added in the driver to
2018 Dec 07
7
[RFC 0/3] virtio_ring: define flags as shifts consistently
This is a follow up of the discussion in this thread: https://patchwork.ozlabs.org/patch/1001015/#2042353 Tiwei Bie (3): virtio_ring: define flags as shifts consistently virtio_ring: add VIRTIO_RING_NO_LEGACY virtio_ring: use new vring flags drivers/virtio/virtio_ring.c | 100 ++++++++++++++++++------------- include/uapi/linux/virtio_ring.h | 61 +++++++++++++------ 2 files changed,
2018 Dec 07
7
[RFC 0/3] virtio_ring: define flags as shifts consistently
This is a follow up of the discussion in this thread: https://patchwork.ozlabs.org/patch/1001015/#2042353 Tiwei Bie (3): virtio_ring: define flags as shifts consistently virtio_ring: add VIRTIO_RING_NO_LEGACY virtio_ring: use new vring flags drivers/virtio/virtio_ring.c | 100 ++++++++++++++++++------------- include/uapi/linux/virtio_ring.h | 61 +++++++++++++------ 2 files changed,
2018 Jun 05
6
[RFC v6 0/5] virtio: support packed ring
Hello everyone, This RFC implements packed ring support in virtio driver. Some functional tests have been done with Jason's packed ring implementation in vhost (RFC v5): https://lwn.net/Articles/755862/ Both of ping and netperf worked as expected. TODO: - Refinements (for code and commit log); - More tests and bug fixes if any; - Send the formal patch set; RFC v5 -> RFC v6: - Avoid
2018 Jul 09
7
[PATCH net-next v1 0/5] virtio: support packed ring
Hello everyone, This patch set implements packed ring support in virtio driver. Some functional tests have been done with Jason's packed ring implementation in vhost: https://lkml.org/lkml/2018/7/3/33 Both of ping and netperf worked as expected. RFC (v6) -> v1: - Avoid extra virtio_wmb() in virtqueue_enable_cb_delayed_packed() when event idx is off (Jason); - Fix bufs calculation in
2018 Nov 21
19
[PATCH net-next v3 00/13] virtio: support packed ring
Hi, This patch set implements packed ring support in virtio driver. A performance test between pktgen (pktgen_sample03_burst_single_flow.sh) and DPDK vhost (testpmd/rxonly/vhost-PMD) has been done, I saw ~30% performance gain in packed ring in this case. To make this patch set work with below patch set for vhost, some hacks are needed to set the _F_NEXT flag in indirect descriptors (this should
2018 Nov 21
19
[PATCH net-next v3 00/13] virtio: support packed ring
Hi, This patch set implements packed ring support in virtio driver. A performance test between pktgen (pktgen_sample03_burst_single_flow.sh) and DPDK vhost (testpmd/rxonly/vhost-PMD) has been done, I saw ~30% performance gain in packed ring in this case. To make this patch set work with below patch set for vhost, some hacks are needed to set the _F_NEXT flag in indirect descriptors (this should