vhost: better detection of available buffers
authorJason Wang <jasowang@redhat.com>
Wed, 18 Jan 2017 07:02:01 +0000 (15:02 +0800)
committerDavid S. Miller <davem@davemloft.net>
Wed, 18 Jan 2017 21:35:29 +0000 (16:35 -0500)
commit275bf960ac69744430a6725a4ed7f50d36cf1441
treebdfad9c1aeb6e8c9b111046cd4d5a5492a43bc57
parent1a8b6d76dc5b489cd0123fa8447b6e20569f357b
vhost: better detection of available buffers

This patch tries to do several tweaks on vhost_vq_avail_empty() for a
better performance:

- check cached avail index first which could avoid userspace memory access.
- using unlikely() for the failure of userspace access
- check vq->last_avail_idx instead of cached avail index as the last
  step.

This patch is need for batching supports which needs to peek whether
or not there's still available buffers in the ring.

Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
Signed-off-by: Jason Wang <jasowang@redhat.com>
Acked-by: Michael S. Tsirkin <mst@redhat.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/vhost/vhost.c