On Thu, Nov 16, 2017 at 02:47:46PM +0000, Stefan Hajnoczi wrote: > The threads you observed are the thread pool that performs > preadv(2)/pwritev(2) syscalls. The Linux AIO API could be used instead > and does not use threads for read and write operations.
I guess if I used AIO then I wouldn't get any parallelism at all since Linux doesn't block on local file access (at least, it never used to)? > Interesting. Did you perform multiple runs of each setting to verify > that the benchmark results are stable with little volatility? I retested the -m 8 no-W/-W ones because those were so unexpected and those are repeatable. > Which command-line did you use to create the preallocated qcow2 file? What I actually did was qemu-img convert -n into the existing qcow2 file, so there was no separate command for that. > Are the source and target files on the same file system and host block > device? The benefit of using multiple coroutines depends on the > performance characteristics of the source and target files. Both local filesystems, but on different SATA devices. Rich. -- Richard Jones, Virtualization Group, Red Hat http://people.redhat.com/~rjones Read my programming and virtualization blog: http://rwmj.wordpress.com virt-builder quickly builds VMs from scratch http://libguestfs.org/virt-builder.1.html
