Thomas Huth <th...@redhat.com> wrote: > qemu_savevm_state_iterate() expects the iterators to return 1 > when they are done, and 0 if there is still something left to do. > However, ram_save_iterate() does not obey this rule and returns > the number of saved pages instead. This causes a fatal hang with > ppc64 guests when you run QEMU like this (also works with TCG): > > qemu-img create -f qcow2 /tmp/test.qcow2 1M > qemu-system-ppc64 -nographic -nodefaults -m 256 \ > -hda /tmp/test.qcow2 -serial mon:stdio > > ... then switch to the monitor by pressing CTRL-a c and try to > save a snapshot with "savevm test1" for example. > > After the first iteration, ram_save_iterate() always returns 0 here, > so that qemu_savevm_state_iterate() hangs in an endless loop and you > can only "kill -9" the QEMU process. > Fix it by using proper return values in ram_save_iterate(). > > Signed-off-by: Thomas Huth <th...@redhat.com>
Reviewed-by: Juan Quintela <quint...@redhat.com> Applied. I don't know how we broked this so much. Thanks, Juan.