On Wed, 06/28 19:47, Stefan Hajnoczi wrote: > Existing tests do not touch the virtqueue used ring. Instead they poll > the virtqueue ISR register and peek into their request's device-specific > status field. > > It turns out that the virtqueue ISR register can be set to 1 more than > once for a single notification (see commit > 83d768b5640946b7da55ce8335509df297e2c7cd "virtio: set ISR on dataplane > notifications"). This causes problems for tests that assume a 1:1 > correspondence between the ISR being 1 and request completion. > > Peeking at device-specific status fields is also problematic if the > device has no field that can be abused for EINPROGRESS polling > semantics. This is the case if all the field's values may be set by the > device; there's no magic constant left for polling. > > It's time to process the used ring for completed requests, just like a > real virtio guest driver. This patch adds the necessary APIs. > > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com>
Reviewed-by: Fam Zheng <f...@redhat.com>