search for: vring_event_f_enable

Displaying 20 results from an estimated 62 matches for "vring_event_f_enable".

2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...> + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > + vq->last_used_idx | (vq->wrap_counter << 15)); > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > virtio_wmb(vq->weak_barriers); > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > + VRING_EVENT_F_ENABLE; > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > vq->event_flags_shadow); > } > @@ -1172,15 +1196,34 @@ static bool virtqueue_poll_p...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...> + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > + vq->last_used_idx | (vq->wrap_counter << 15)); > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > virtio_wmb(vq->weak_barriers); > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > + VRING_EVENT_F_ENABLE; > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > vq->event_flags_shadow); > } > @@ -1172,15 +1196,34 @@ static bool virtqueue_poll_p...
2018 May 16
1
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...tio16(_vq->vdev, > + vq->last_used_idx | (vq->wrap_counter << 15)); Using vq->wrap_counter seems not correct, what we need is the warp counter for the last_used_idx not next_avail_idx. And I think there's even no need to bother with event idx here, how about just set VRING_EVENT_F_ENABLE? > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > virtio_wmb(vq->weak_barriers); > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > + VRING_EVENT_F_ENABLE; > vq...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...r->off_wrap = cpu_to_virtio16(_vq->vdev, > > > + vq->last_used_idx | (vq->wrap_counter << 15)); > > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > > > virtio_wmb(vq->weak_barriers); > > > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > > > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > > > + VRING_EVENT_F_ENABLE; > > > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > > > vq->event_flags_shadow); > > > } > &g...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...r->off_wrap = cpu_to_virtio16(_vq->vdev, > > > + vq->last_used_idx | (vq->wrap_counter << 15)); > > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > > > virtio_wmb(vq->weak_barriers); > > > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > > > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > > > + VRING_EVENT_F_ENABLE; > > > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > > > vq->event_flags_shadow); > > > } > &g...
2018 May 16
2
[RFC v4 4/5] virtio_ring: add event idx support in packed ring
...> + > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > + vq->last_used_idx | (wrap_counter << 15)); > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > virtio_wmb(vq->weak_barriers); > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > + VRING_EVENT_F_ENABLE; > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > vq->event_flags_shadow); > } > @@ -1194,15 +1232,40 @@ static bool virtqueue_poll_p...
2018 Sep 07
1
[PATCH net-next v2 4/5] virtio_ring: add event idx support in packed ring
...rap_counter << 15)); > + /* We need to update event offset and event wrap > + * counter first before updating event flags. */ > + virtio_wmb(vq->weak_barriers); > + } > + > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > + VRING_EVENT_F_ENABLE; > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > vq->event_flags_shadow); > } > @@ -1238,22 +1270,47 @@ static bool virtqueue_poll_pack...
2018 May 16
2
[RFC v4 4/5] virtio_ring: add event idx support in packed ring
...> + > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > + vq->last_used_idx | (wrap_counter << 15)); > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > virtio_wmb(vq->weak_barriers); > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > + VRING_EVENT_F_ENABLE; > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > vq->event_flags_shadow); > } > @@ -1194,15 +1232,40 @@ static bool virtqueue_poll_p...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...;vdev, > > > > > + vq->last_used_idx | (vq->wrap_counter << 15)); > > > > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > > > > > virtio_wmb(vq->weak_barriers); > > > > > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > > > > > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > > > > > + VRING_EVENT_F_ENABLE; > > > > > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > > > > > vq->event_fl...
2018 May 02
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...;vdev, > > > > > + vq->last_used_idx | (vq->wrap_counter << 15)); > > > > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > > > > > virtio_wmb(vq->weak_barriers); > > > > > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > > > > > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > > > > > + VRING_EVENT_F_ENABLE; > > > > > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > > > > > vq->event_fl...
2018 May 16
0
[RFC v4 4/5] virtio_ring: add event idx support in packed ring
...+ vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > > + vq->last_used_idx | (wrap_counter << 15)); > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > > virtio_wmb(vq->weak_barriers); > > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > > + VRING_EVENT_F_ENABLE; > > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > > vq->event_flags_shadow); > > } > > @@ -1194,15 +1232,40 @...
2018 Apr 25
0
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...index to keep code simple. */ + + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, + vq->last_used_idx | (vq->wrap_counter << 15)); if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { virtio_wmb(vq->weak_barriers); - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : + VRING_EVENT_F_ENABLE; vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, vq->event_flags_shadow); } @@ -1172,15 +1196,34 @@ static bool virtqueue_poll_packed(struct virtqueue *_vq, unsi...
2018 Jul 09
0
[PATCH net-next v1 4/5] virtio_ring: add event idx support in packed ring
...used_idx | + ((u16)vq->used_wrap_counter << 15)); + /* We need to update event offset and event wrap + * counter first before updating event flags. */ + virtio_wmb(vq->weak_barriers); + } + if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : + VRING_EVENT_F_ENABLE; vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, vq->event_flags_shadow); } @@ -1238,22 +1270,47 @@ static bool virtqueue_poll_packed(struct virtqueue *_vq, unsi...
2018 Jul 11
0
[PATCH net-next v2 4/5] virtio_ring: add event idx support in packed ring
...used_idx | + ((u16)vq->used_wrap_counter << 15)); + /* We need to update event offset and event wrap + * counter first before updating event flags. */ + virtio_wmb(vq->weak_barriers); + } + if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : + VRING_EVENT_F_ENABLE; vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, vq->event_flags_shadow); } @@ -1238,22 +1270,47 @@ static bool virtqueue_poll_packed(struct virtqueue *_vq, unsi...
2018 Jun 05
0
[RFC v6 4/5] virtio_ring: add event idx support in packed ring
...Always update the event index to keep code simple. */ + + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, + vq->last_used_idx | + ((u16)vq->used_wrap_counter << 15)); if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; + /* We need to update event offset and event wrap + * counter first before updating event flags. */ + virtio_wmb(vq->weak_barriers); + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : + VRING_EVENT_F_ENABLE; vq->vring_packed.driver->flags = cpu_to_virtio1...
2018 May 16
0
[RFC v4 4/5] virtio_ring: add event idx support in packed ring
...next_avail_idx) + wrap_counter ^= 1; + + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, + vq->last_used_idx | (wrap_counter << 15)); if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { virtio_wmb(vq->weak_barriers); - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : + VRING_EVENT_F_ENABLE; vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, vq->event_flags_shadow); } @@ -1194,15 +1232,40 @@ static bool virtqueue_poll_packed(struct virtqueue *_vq, unsi...
2018 May 03
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...; + vq->last_used_idx | (vq->wrap_counter << 15)); > > > > > > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > > > > > > > virtio_wmb(vq->weak_barriers); > > > > > > > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > > > > > > > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > > > > > > > + VRING_EVENT_F_ENABLE; > > > > > > > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > > > >...
2018 May 03
2
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...; + vq->last_used_idx | (vq->wrap_counter << 15)); > > > > > > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > > > > > > > virtio_wmb(vq->weak_barriers); > > > > > > > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > > > > > > > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > > > > > > > + VRING_EVENT_F_ENABLE; > > > > > > > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > > > >...
2018 May 02
0
[RFC v3 4/5] virtio_ring: add event idx support in packed ring
...t;vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > > + vq->last_used_idx | (vq->wrap_counter << 15)); > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > > virtio_wmb(vq->weak_barriers); > > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > > + VRING_EVENT_F_ENABLE; > > vq->vring_packed.driver->flags = cpu_to_virtio16(_vq->vdev, > > vq->event_flags_shadow); > > } > > @@ -1172,15 +1196,34 @...
2018 Jun 07
1
[RFC v6 4/5] virtio_ring: add event idx support in packed ring
...;vring_packed.num; > + wrap_counter ^= 1; > + } > + > + vq->vring_packed.driver->off_wrap = cpu_to_virtio16(_vq->vdev, > + used_idx | (wrap_counter << 15)); > > if (vq->event_flags_shadow == VRING_EVENT_F_DISABLE) { > - vq->event_flags_shadow = VRING_EVENT_F_ENABLE; > + /* We need to update event offset and event wrap > + * counter first before updating event flags. */ > + virtio_wmb(vq->weak_barriers); > + vq->event_flags_shadow = vq->event ? VRING_EVENT_F_DESC : > + VRING_EVENT_F_ENABLE; > vq->vring_packed.dr...