Vincenzo Maffione be1fea9bc2 virtio: read avail_idx from VQ only when necessary
The virtqueue_pop() implementation needs to check if the avail ring
contains some pending buffers. To perform this check, it is not
always necessary to fetch the avail_idx in the VQ memory, which is
expensive. This patch introduces a shadow variable tracking avail_idx
and modifies virtio_queue_empty() to access avail_idx in physical
memory only when necessary.

Signed-off-by: Vincenzo Maffione <v.maffione@gmail.com>
Message-Id: <b617d6459902773d9f4ab843bfaca764f5af8eda.1450218353.git.v.maffione@gmail.com>
Reviewed-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Reviewed-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: Michael S. Tsirkin <mst@redhat.com>
2016-02-06 20:44:08 +02:00
..
2016-01-29 15:07:23 +00:00
2016-02-02 13:57:31 +01:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:24 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-02-04 19:53:02 +02:00
2016-01-29 15:07:24 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:22 +00:00
2016-01-29 15:07:24 +00:00
2016-01-29 15:07:25 +00:00
2016-01-28 11:13:13 +00:00
2016-01-23 14:30:04 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:24 +00:00
2016-01-29 15:07:24 +00:00
2016-01-29 15:07:24 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:22 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:24 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:22 +00:00
2016-01-29 15:07:22 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:22 +00:00
2016-02-02 14:11:01 +01:00
2016-01-29 15:07:24 +00:00
2016-01-29 15:07:25 +00:00
2016-01-29 15:07:23 +00:00
2016-01-29 15:07:23 +00:00
2016-01-29 15:07:24 +00:00
2015-12-22 18:39:19 +02:00