Hi, Paolo I tested your 4 patches in the latest version of qemu.git/master(commit: 93b48c201eb6c0404d15550a0eaa3c0f7937e35e,2013-04-09). These patches resolve the "savevm hanging" problem, which is detailedly described in my preceding mail:"After executing "savevm", the QEMU process is hanging".
But, I found two other problem: 1、My VM's OS is winxp. After the execution of "savevm" is completed, I exec "loadvm". But the winxp change to "blue screen", and then restart. I tested 3 times, but the results are same. 2、The block migration is not OK. The qemu-system-x86_64 process of source host is core-dump. In the latest version of qemu.git/master(commit:93b48c201eb6c0404d15550a0eaa3c0f7937e35e,2013-04-09), the block migration is OK. The info of core-dump file: #0 0x00007f8a44cec341 in migration_thread (opaque=0x7f8a45259bc0) at migration.c:545 545 double bandwidth = transferred_bytes / time_spent; (gdb) bt #0 0x00007f8a44cec341 in migration_thread (opaque=0x7f8a45259bc0) at migration.c:545 #1 0x00007f8a42fb7d14 in ?? () #2 0x0000000000000000 in ?? () Best Regards, Jeremy Liu > This fixes Kevin's reported regression with savevm, and simplifies the > QEMUFile code further. > > Patch 2 could be made a bit smaller at the expense of fixing the > regression in the last patch only. I prefer to fix the bug earlier. > > Tested with Autotest. > > Paolo Bonzini (4): > migration: set f->is_write and flush in add_to_iovec > migration: use a single I/O operation when writev_buffer is not defined > migration: drop is_write complications > migration: simplify writev vs. non-writev logic > > savevm.c | 104 > ++++++++++++++++++++++++++------------------------------------- > 1 file changed, 42 insertions(+), 62 deletions(-) > > -- > 1.8.2 >