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