search for: vring_packed_event_flag_disable

Displaying 20 results from an estimated 27 matches for "vring_packed_event_flag_disable".

2018 Nov 30
4
[PATCH net-next v3 01/13] virtio: add packed ring types and macros
...will still kick if it's out of buffers. */ > @@ -53,6 +60,23 @@ > * optimization. */ > #define VRING_AVAIL_F_NO_INTERRUPT 1 > > +/* Enable events in packed ring. */ > +#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0 > +/* Disable events in packed ring. */ > +#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1 > +/* > + * Enable events for a specific descriptor in packed ring. > + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter). > + * Only valid if VIRTIO_RING_F_EVENT_IDX has been negotiated. > + */ > +#define VRING_PACKED_EVENT_FLAG_DESC 0x2 Any reason for us...
2018 Nov 30
4
[PATCH net-next v3 01/13] virtio: add packed ring types and macros
...will still kick if it's out of buffers. */ > @@ -53,6 +60,23 @@ > * optimization. */ > #define VRING_AVAIL_F_NO_INTERRUPT 1 > > +/* Enable events in packed ring. */ > +#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0 > +/* Disable events in packed ring. */ > +#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1 > +/* > + * Enable events for a specific descriptor in packed ring. > + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter). > + * Only valid if VIRTIO_RING_F_EVENT_IDX has been negotiated. > + */ > +#define VRING_PACKED_EVENT_FLAG_DESC 0x2 Any reason for us...
2019 Oct 25
1
[PATCH] virtio_ring: fix packed ring event may missing
...ually see a problem and then fixed it? Because as far as I could see after this patch and with event index off, used_idx and wrap_counter will be used without being initialized. OTOH the behaviour with event index on is completely unaffected. > > if (vq->packed.event_flags_shadow == VRING_PACKED_EVENT_FLAG_DISABLE) { OK so trying to unpack the scenario. First you patch only affects code running when EVENT_IDX is off, so legal values for flags are enable and disable. Next point, this calculates the index at which we are going to look for the flags to change, in other words it affects the line if (...
2019 Oct 25
1
[PATCH] virtio_ring: fix packed ring event may missing
...virtqueue *_vq) > * counter first before updating event flags. > */ > virtio_wmb(vq->weak_barriers); > - } else { > - used_idx = vq->last_used_idx; > - wrap_counter = vq->packed.used_wrap_counter; > } > > if (vq->packed.event_flags_shadow == VRING_PACKED_EVENT_FLAG_DISABLE) { > @@ -1518,7 +1515,9 @@ static bool virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq) > */ > virtio_mb(vq->weak_barriers); > > - if (is_used_desc_packed(vq, used_idx, wrap_counter)) { > + if (is_used_desc_packed(vq, > + vq->last_used_idx, > + vq...
2019 Oct 27
1
[PATCH] virtio_ring: fix stalls for packed rings
...ol virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq) * counter first before updating event flags. */ virtio_wmb(vq->weak_barriers); - } else { - used_idx = vq->last_used_idx; - wrap_counter = vq->packed.used_wrap_counter; } if (vq->packed.event_flags_shadow == VRING_PACKED_EVENT_FLAG_DISABLE) { @@ -1518,7 +1515,9 @@ static bool virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq) */ virtio_mb(vq->weak_barriers); - if (is_used_desc_packed(vq, used_idx, wrap_counter)) { + if (is_used_desc_packed(vq, + vq->last_used_idx, + vq->packed.used_wrap_counter)) { END...
2018 Nov 30
2
[PATCH net-next v3 01/13] virtio: add packed ring types and macros
...; > > #define VRING_AVAIL_F_NO_INTERRUPT 1 > > > > > > +/* Enable events in packed ring. */ > > > > > > +#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0 > > > > > > +/* Disable events in packed ring. */ > > > > > > +#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1 > > > > > > +/* > > > > > > + * Enable events for a specific descriptor in packed ring. > > > > > > + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter). > > > > > > + * Only valid if VIRTIO_RING_F_EVENT_I...
2018 Nov 30
2
[PATCH net-next v3 01/13] virtio: add packed ring types and macros
...; > > #define VRING_AVAIL_F_NO_INTERRUPT 1 > > > > > > +/* Enable events in packed ring. */ > > > > > > +#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0 > > > > > > +/* Disable events in packed ring. */ > > > > > > +#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1 > > > > > > +/* > > > > > > + * Enable events for a specific descriptor in packed ring. > > > > > > + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter). > > > > > > + * Only valid if VIRTIO_RING_F_EVENT_I...
2018 Nov 30
2
[PATCH net-next v3 01/13] virtio: add packed ring types and macros
...INTERRUPT 1 > > > > > > > > +/* Enable events in packed ring. */ > > > > > > > > +#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0 > > > > > > > > +/* Disable events in packed ring. */ > > > > > > > > +#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1 > > > > > > > > +/* > > > > > > > > + * Enable events for a specific descriptor in packed ring. > > > > > > > > + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter). > > > > > > > >...
2018 Nov 30
2
[PATCH net-next v3 01/13] virtio: add packed ring types and macros
...INTERRUPT 1 > > > > > > > > +/* Enable events in packed ring. */ > > > > > > > > +#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0 > > > > > > > > +/* Disable events in packed ring. */ > > > > > > > > +#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1 > > > > > > > > +/* > > > > > > > > + * Enable events for a specific descriptor in packed ring. > > > > > > > > + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter). > > > > > > > >...
2023 Mar 28
2
9p regression (Was: [PATCH v2] virtio_ring: don't update event idx on get_buf)
...o like a temporary drop from -next until this is figured out, but I'll leave this up to you) > > If we disable the napi_tx, it will only be called when the tx ring > buffer is relatively small. > > Because event_triggered is true. Therefore, VRING_AVAIL_F_NO_INTERRUPT or > VRING_PACKED_EVENT_FLAG_DISABLE will not be set. So we update > vring_used_event(&vq->split.vring) or vq->packed.vring.driver->off_wrap > every time we call virtqueue_get_buf_ctx. This will bring more interruptions. > > To summarize: > 1) event_triggered was set to true in vring_interrupt() > 2) af...
2019 Oct 24
1
[PATCH] virtio_ring: fix packed ring event may missing
...eak_barriers); >>>>> - } else { >>>>> - used_idx = vq->last_used_idx; >>>>> - wrap_counter = vq->packed.used_wrap_counter; >>>>> } >>>>> >>>>> if (vq->packed.event_flags_shadow == >> VRING_PACKED_EVENT_FLAG_DISABLE) >>>> { >>>>> @@ -1518,7 +1515,9 @@ static bool >>>> virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq) >>>>> */ >>>>> virtio_mb(vq->weak_barriers); >>>>> >>>>> - if (is_used_desc...
2023 Mar 24
1
[External] Re: [PATCH] virtio_ring: Suppress tx interrupt when napi_tx disable
...> > Date: Tue Jan 17 11:47:07 2023 +0800 > > > > virtio-net: correctly enable callback during start_xmit > > > > > } > > > } > > > Because event_triggered is true.Therefore, VRING_AVAIL_F_NO_INTERRUPT or > > > VRING_PACKED_EVENT_FLAG_DISABLE will not be set.So we update > > > vring_used_event(&vq->split.vring) or vq->packed.vring.driver->off_wrap > > > every time we call virtqueue_get_buf_ctx.This will bring more interruptions. > > > > Can you please post how to test with the performance numbe...
2018 Nov 21
0
[PATCH net-next v3 01/13] virtio: add packed ring types and macros
...it's simply an optimization. Guest * will still kick if it's out of buffers. */ @@ -53,6 +60,23 @@ * optimization. */ #define VRING_AVAIL_F_NO_INTERRUPT 1 +/* Enable events in packed ring. */ +#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0 +/* Disable events in packed ring. */ +#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1 +/* + * Enable events for a specific descriptor in packed ring. + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter). + * Only valid if VIRTIO_RING_F_EVENT_IDX has been negotiated. + */ +#define VRING_PACKED_EVENT_FLAG_DESC 0x2 + +/* + * Wrap counter bit shift in event suppres...
2019 Oct 22
0
[PATCH] virtio_ring: fix packed ring event may missing
...eue *_vq) > * counter first before updating event flags. > */ > virtio_wmb(vq->weak_barriers); > - } else { > - used_idx = vq->last_used_idx; > - wrap_counter = vq->packed.used_wrap_counter; > } > > if (vq->packed.event_flags_shadow == VRING_PACKED_EVENT_FLAG_DISABLE) { > @@ -1518,7 +1515,9 @@ static bool virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq) > */ > virtio_mb(vq->weak_barriers); > > - if (is_used_desc_packed(vq, used_idx, wrap_counter)) { > + if (is_used_desc_packed(vq, > + vq->last_used_idx, > +...
2023 Mar 27
0
[PATCH v2] virtio_ring: don't update event idx on get_buf
...false. Unless we explicitly call virtqueue_enable_cb_delayed or > virtqueue_enable_cb_prepare. > > If we disable the napi_tx, it will only be called when the tx ring > buffer is relatively small. > > Because event_triggered is true. Therefore, VRING_AVAIL_F_NO_INTERRUPT or > VRING_PACKED_EVENT_FLAG_DISABLE will not be set. So we update > vring_used_event(&vq->split.vring) or vq->packed.vring.driver->off_wrap > every time we call virtqueue_get_buf_ctx. This will bring more interruptions. > > To summarize: > 1) event_triggered was set to true in vring_interrupt() > 2) af...
2023 Mar 22
0
[PATCH] virtio_ring: Suppress tx interrupt when napi_tx disable
...f622804b810f5e274069060a174 Author: Jason Wang <jasowang at redhat.com> Date: Tue Jan 17 11:47:07 2023 +0800 virtio-net: correctly enable callback during start_xmit > } > } > Because event_triggered is true.Therefore, VRING_AVAIL_F_NO_INTERRUPT or > VRING_PACKED_EVENT_FLAG_DISABLE will not be set.So we update > vring_used_event(&vq->split.vring) or vq->packed.vring.driver->off_wrap > every time we call virtqueue_get_buf_ctx.This will bring more interruptions. Can you please post how to test with the performance numbers? > > if event_triggered is se...
2018 Nov 30
0
[PATCH net-next v3 01/13] virtio: add packed ring types and macros
...s out of buffers. */ > > @@ -53,6 +60,23 @@ > > * optimization. */ > > #define VRING_AVAIL_F_NO_INTERRUPT 1 > > +/* Enable events in packed ring. */ > > +#define VRING_PACKED_EVENT_FLAG_ENABLE 0x0 > > +/* Disable events in packed ring. */ > > +#define VRING_PACKED_EVENT_FLAG_DISABLE 0x1 > > +/* > > + * Enable events for a specific descriptor in packed ring. > > + * (as specified by Descriptor Ring Change Event Offset/Wrap Counter). > > + * Only valid if VIRTIO_RING_F_EVENT_IDX has been negotiated. > > + */ > > +#define VRING_PACKED_EVENT_FLA...
2019 Oct 22
0
[PATCH] virtio_ring: fix packed ring event may missing
...>>> */ >>> virtio_wmb(vq->weak_barriers); >>> - } else { >>> - used_idx = vq->last_used_idx; >>> - wrap_counter = vq->packed.used_wrap_counter; >>> } >>> >>> if (vq->packed.event_flags_shadow == VRING_PACKED_EVENT_FLAG_DISABLE) >> { >>> @@ -1518,7 +1515,9 @@ static bool >> virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq) >>> */ >>> virtio_mb(vq->weak_barriers); >>> >>> - if (is_used_desc_packed(vq, used_idx, wrap_counter)) { >>> + if (...
2019 Oct 27
0
[PATCH] virtio_ring: fix packed ring event may missing
...virtqueue *_vq) > * counter first before updating event flags. > */ > virtio_wmb(vq->weak_barriers); > - } else { > - used_idx = vq->last_used_idx; > - wrap_counter = vq->packed.used_wrap_counter; > } > > if (vq->packed.event_flags_shadow == VRING_PACKED_EVENT_FLAG_DISABLE) { > @@ -1518,7 +1515,9 @@ static bool virtqueue_enable_cb_delayed_packed(struct virtqueue *_vq) > */ > virtio_mb(vq->weak_barriers); > > - if (is_used_desc_packed(vq, used_idx, wrap_counter)) { > + if (is_used_desc_packed(vq, > + vq->last_used_idx, > + vq...
2023 Mar 24
1
[External] Re: [PATCH] virtio_ring: Suppress tx interrupt when napi_tx disable
...mit > > > > > > > > > > > > > > > } > > > > > > > > } > > > > > > > > Because event_triggered is true.Therefore, VRING_AVAIL_F_NO_INTERRUPT or > > > > > > > > VRING_PACKED_EVENT_FLAG_DISABLE will not be set.So we update > > > > > > > > vring_used_event(&vq->split.vring) or vq->packed.vring.driver->off_wrap > > > > > > > > every time we call virtqueue_get_buf_ctx.This will bring more interruptions. > > > > > &gt...