iov: avoid memcpy for "simple" iov_from_buf/iov_to_buf
commitad523bca56a7202d2498c550a41be5c986c4d33c
authorPaolo Bonzini <pbonzini@redhat.com>
Tue, 22 Dec 2015 11:03:33 +0000 (22 12:03 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Tue, 9 Feb 2016 13:52:26 +0000 (9 13:52 +0000)
treeb3b07fcce95eefd07483b22923de1c4ae62b10bb
parentee8e8f92a730afc17ab8be6e86df6b9a23b8ebc6
iov: avoid memcpy for "simple" iov_from_buf/iov_to_buf

memcpy can take a large amount of time for small reads and writes.
For virtio it is a common case that the first iovec can satisfy the
whole read or write.  In that case, and if bytes is a constant to
avoid excessive growth of code, inline the first iteration
into the caller.

Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1450782213-14227-1-git-send-email-pbonzini@redhat.com
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
include/qemu/iov.h
util/iov.c