On Tue, Jun 14, 2016 at 06:25:07PM +0300, Denis V. Lunev wrote: > Block commit of the active image to the backing store on a slow disk > could never end. For example with the guest with the following loop > inside > while true; do > dd bs=1k count=1 if=/dev/zero of=x > done > running above slow storage could not complete the operation with a > resonable amount of time: > virsh blockcommit rhel7 sda --active --shallow > virsh qemu-monitor-event > virsh qemu-monitor-command rhel7 \ > '{"execute":"block-job-complete",\ > "arguments":{"device":"drive-scsi0-0-0-0"} }' > virsh qemu-monitor-event > Completion event is never received. > > This problem could not be fixed easily with the current architecture. We > should either prohibit guest writes (making dirty bitmap dirty) or switch > to the sycnchronous scheme. > > This series switches driver mirror to synch scheme. Actually we can have > something more intelligent and switch to sync mirroring just after > the first pass over the bitmap. Though this could be done relatively > easily during discussion. The most difficult things are here. > > The set also adds some performance improvements dealing with > known-to-be-zero areas.
Patches 1-5 look pretty good to me. I think the synchronous I/O mirroring approach will need more discussion and it could be split into a separate series so the earlier patches can be merged already. Stefan
signature.asc
Description: PGP signature