The libqos virtio framework currently offers no way to pop buffers off the virtqueue. Existing test cases are trivial and therefore get away without reclaiming buffers. More extensive tests really do need to pop buffers and do the housekeeping associated with the 'used' ring.
This patch series adds qvirtqueue_get_buf() and qvirtio_wait_queue_buf() for popping buffers off the virtqueue. The code is based on my recent "[PATCH for-2.7 0/8] libqos: use standard virtio headers" series which has not been merged yet. I am sending a new test case for the virtio-vsock device in a separate email thread. The virtio-vsock test uses the new qvirtio_wait_queue_buf() function. Stefan Hajnoczi (5): libqos: fix virtio descriptor free list libqos: fix virtio num_free descriptor counter libqos: add virtio buffer token libqos: add qvirtqueue_get_buf() libqos: add qvirtio_wait_queue_buf() tests/libqos/virtio.c | 146 +++++++++++++++++++++++++++++++++++++++++++---- tests/libqos/virtio.h | 13 ++++- tests/virtio-blk-test.c | 54 +++++++++--------- tests/virtio-net-test.c | 6 +- tests/virtio-scsi-test.c | 8 +-- 5 files changed, 181 insertions(+), 46 deletions(-) -- 2.5.5
