search for: virtio_ring_f_used_event_idx

Displaying 20 results from an estimated 86 matches for "virtio_ring_f_used_event_idx".

2011 May 04
4
[PATCH 0/3] virtio-net: 64 bit features, event index
OK, here's a patch that implements the virtio spec update that I sent earlier. It supercedes the PUBLISH_USED_IDX patches I sent out earlier. Support is added in both userspace and vhost-net. I see nice performance improvements: e.g. from 12 to 18 Gbit/s host to guest with netperf, but did not spend a lot of time testing performance. I hope others will try this out and report. Note: there
2011 May 04
4
[PATCH 0/3] virtio-net: 64 bit features, event index
OK, here's a patch that implements the virtio spec update that I sent earlier. It supercedes the PUBLISH_USED_IDX patches I sent out earlier. Support is added in both userspace and vhost-net. I see nice performance improvements: e.g. from 12 to 18 Gbit/s host to guest with netperf, but did not spend a lot of time testing performance. I hope others will try this out and report. Note: there
2018 May 16
2
[RFC v4 4/5] virtio_ring: add event idx support in packed ring
...able_cb_prepare_packed(struct virtqueue *_vq) > { > struct vring_virtqueue *vq = to_vvq(_vq); > + u16 wrap_counter; > > START_USE(vq); > > /* We optimistically turn back on interrupts, then check if there was > * more to do. */ > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > + * either clear the flags bit or point the event index at the next > + * entry. Always update the event index to keep code simple. */ > + > + wrap_counter = vq->wrap_counter; > + if (vq->last_used_idx > vq->next_avail_idx) Should this be "&g...
2018 May 16
2
[RFC v4 4/5] virtio_ring: add event idx support in packed ring
...able_cb_prepare_packed(struct virtqueue *_vq) > { > struct vring_virtqueue *vq = to_vvq(_vq); > + u16 wrap_counter; > > START_USE(vq); > > /* We optimistically turn back on interrupts, then check if there was > * more to do. */ > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > + * either clear the flags bit or point the event index at the next > + * entry. Always update the event index to keep code simple. */ > + > + wrap_counter = vq->wrap_counter; > + if (vq->last_used_idx > vq->next_avail_idx) Should this be "&g...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...> vq->last_add_time_valid = false; > #endif > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > /* We optimistically turn back on interrupts, then check if there was > * more to do. */ > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > + * either clear the flags bit or point the event index at the next > + * entry. Always update the event index to keep code simple. */ > + > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > + vq->last_used_idx | (vq->wrap_cou...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...> vq->last_add_time_valid = false; > #endif > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > /* We optimistically turn back on interrupts, then check if there was > * more to do. */ > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > + * either clear the flags bit or point the event index at the next > + * entry. Always update the event index to keep code simple. */ > + > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > + vq->last_used_idx | (vq->wrap_cou...
2018 May 16
1
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...> vq->last_add_time_valid = false; > #endif > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > /* We optimistically turn back on interrupts, then check if there was > * more to do. */ > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > + * either clear the flags bit or point the event index at the next > + * entry. Always update the event index to keep code simple. */ > + > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > + vq->last_used_idx | (vq->wrap_cou...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...; > > > #endif > > > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > > /* We optimistically turn back on interrupts, then check if there was > > > * more to do. */ > > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > > + * either clear the flags bit or point the event index at the next > > > + * entry. Always update the event index to keep code simple. */ > > > + > > > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > &gt...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...; > > > #endif > > > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > > /* We optimistically turn back on interrupts, then check if there was > > > * more to do. */ > > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > > + * either clear the flags bit or point the event index at the next > > > + * entry. Always update the event index to keep code simple. */ > > > + > > > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > &gt...
2011 May 04
27
[PATCH 00/18] virtio and vhost-net performance enhancements
OK, here's a large patchset that implements the virtio spec update that I sent earlier. It supercedes the PUBLISH_USED_IDX patches I sent out earlier. I know it's a lot to ask but please test, and please consider for 2.6.40 :) I see nice performance improvements: one run showed going from 12 to 18 Gbit/s host to guest with netperf, but I did not spend a lot of time testing performance,
2011 May 04
27
[PATCH 00/18] virtio and vhost-net performance enhancements
OK, here's a large patchset that implements the virtio spec update that I sent earlier. It supercedes the PUBLISH_USED_IDX patches I sent out earlier. I know it's a lot to ask but please test, and please consider for 2.6.40 :) I see nice performance improvements: one run showed going from 12 to 18 Gbit/s host to guest with netperf, but I did not spend a lot of time testing performance,
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...> > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > > > > /* We optimistically turn back on interrupts, then check if there was > > > > > * more to do. */ > > > > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > > > > + * either clear the flags bit or point the event index at the next > > > > > + * entry. Always update the event index to keep code simple. */ > > > > > + > > > > > + vq->vring_packed.driver->off_wrap...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...> > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > > > > /* We optimistically turn back on interrupts, then check if there was > > > > > * more to do. */ > > > > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > > > > + * either clear the flags bit or point the event index at the next > > > > > + * entry. Always update the event index to keep code simple. */ > > > > > + > > > > > + vq->vring_packed.driver->off_wrap...
2018 May 16
0
[RFC v4 4/5] virtio_ring: add event idx support in packed ring
...ked(struct virtqueue *_vq) > > { > > struct vring_virtqueue *vq = to_vvq(_vq); > > + u16 wrap_counter; > > START_USE(vq); > > /* We optimistically turn back on interrupts, then check if there was > > * more to do. */ > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > + * either clear the flags bit or point the event index at the next > > + * entry. Always update the event index to keep code simple. */ > > + > > + wrap_counter = vq->wrap_counter; > > + if (vq->last_used_idx > vq->next_avail_idx)...
2018 Apr 25
0
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...counter << 15))); + #ifdef DEBUG vq->last_add_time_valid = false; #endif @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) /* We optimistically turn back on interrupts, then check if there was * more to do. */ + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to + * either clear the flags bit or point the event index at the next + * entry. Always update the event index to keep code simple. */ + + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, + vq->last_used_idx | (vq->wrap_counter << 15)); i...
2018 May 16
0
[RFC v4 4/5] virtio_ring: add event idx support in packed ring
...struct virtqueue *_vq) static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) { struct vring_virtqueue *vq = to_vvq(_vq); + u16 wrap_counter; START_USE(vq); /* We optimistically turn back on interrupts, then check if there was * more to do. */ + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to + * either clear the flags bit or point the event index at the next + * entry. Always update the event index to keep code simple. */ + + wrap_counter = vq->wrap_counter; + if (vq->last_used_idx > vq->next_avail_idx) + wrap_counter ^= 1; + + vq->vring_packed.dri...
2018 May 03
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...7 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > > > > > > /* We optimistically turn back on interrupts, then check if there was > > > > > > > * more to do. */ > > > > > > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > > > > > > + * either clear the flags bit or point the event index at the next > > > > > > > + * entry. Always update the event index to keep code simple. */ > > > > > > > + > > > > > > > +...
2018 May 03
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...7 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > > > > > > /* We optimistically turn back on interrupts, then check if there was > > > > > > > * more to do. */ > > > > > > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > > > > > > + * either clear the flags bit or point the event index at the next > > > > > > > + * entry. Always update the event index to keep code simple. */ > > > > > > > + > > > > > > > +...
2018 May 02
0
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...st_add_time_valid = false; > > #endif > > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > /* We optimistically turn back on interrupts, then check if there was > > * more to do. */ > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > + * either clear the flags bit or point the event index at the next > > + * entry. Always update the event index to keep code simple. */ > > + > > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > > + vq->last_us...
2018 May 02
0
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...endif > > > > @@ -1143,10 +1160,17 @@ static unsigned virtqueue_enable_cb_prepare_packed(struct virtqueue *_vq) > > > > /* We optimistically turn back on interrupts, then check if there was > > > > * more to do. */ > > > > + /* Depending on the VIRTIO_RING_F_USED_EVENT_IDX feature, we need to > > > > + * either clear the flags bit or point the event index at the next > > > > + * entry. Always update the event index to keep code simple. */ > > > > + > > > > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_v...