block: use 1 MB bounce buffers for crypto instead of 16KB
commit161253e2d0a83a1b33bca019c6e926013e1a03db
authorDaniel P. Berrange <berrange@redhat.com>
Wed, 27 Sep 2017 12:53:35 +0000 (27 13:53 +0100)
committerMax Reitz <mreitz@redhat.com>
Fri, 6 Oct 2017 14:30:47 +0000 (6 16:30 +0200)
tree607d4598e3b8b2183726c2463aeed40352e24e60
parent461743390d3a1ceafa4503811adbc87c7d372741
block: use 1 MB bounce buffers for crypto instead of 16KB

Using 16KB bounce buffers creates a significant performance
penalty for I/O to encrypted volumes on storage which high
I/O latency (rotating rust & network drives), because it
triggers lots of fairly small I/O operations.

On tests with rotating rust, and cache=none|directsync,
write speed increased from 2MiB/s to 32MiB/s, on a par
with that achieved by the in-kernel luks driver. With
other cache modes the in-kernel driver is still notably
faster because it is able to report completion of the
I/O request before any encryption is done, while the
in-QEMU driver must encrypt the data before completion.

Signed-off-by: Daniel P. Berrange <berrange@redhat.com>
Message-id: 20170927125340.12360-2-berrange@redhat.com
Reviewed-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Signed-off-by: Max Reitz <mreitz@redhat.com>
block/crypto.c