
Daniel Veillard wrote:
On Wed, Nov 09, 2011 at 09:29:23AM -0700, Eric Blake wrote:
This reverts commit ef1065cf5ac; see also this bug report: https://bugzilla.redhat.com/show_bug.cgi?id=751900
In qemu 0.15.1 and earlier, during migration to file, the qemu_savevm_state_begin and qemu_savevm_state_iterate methods will both process as much migration data as possible until either
1. The file descriptor returns EAGAIN 2. The bandwidth rate limit is reached
If we set the rate limit to ULONG_MAX, test 2 never becomes true. We're passing a plain file descriptor to QEMU and POSIX does not support EAGAIN on regular files / block devices, so test 1 never becomes true either.
In the 'virsh save --bypass-cache' case, we pass a pipe instead of a regular fd, but using a pipe adds I/O overhead, so always passing a pipe just so qemu can see EAGAIN doesn't seem nice.
The ultimate fix needs to come from qemu - background migration must
ACK, it's a bit of a shame, but until we have a fix, it's more important to be able to abort a save to disk than to be able to save at a speed of more than 32MB/s (if the storage system support this)
Agreed. BTW, I don't have access to the bug to see details, but I think I understand given Eric's description. Jim