Anthony Liguori <anth...@codemonkey.ws> writes: > Juan Quintela <quint...@redhat.com> writes: > >> Hi >> >> Changes for yesterday: >> - Paolo Acked the series >> - Rebaso on top of today git (only conflicts were due to header re-shuffle) >> >> Please pull. >> >> [20121219] >> >> This is my queue for migration-thread and patches associated. This >> integrates review comments & code for Paolo. This is the subset from >> both approachs that we agreed with. rest of patches need more review >> and are not here. > > This breaks migration. Here's my test case: > > #!/bin/sh > > gzip -d -c lidb.ssmall.img.gz | \ > ~/build/qemu/x86_64-softmmu/qemu-system-x86_64 -cdrom \ > ~/isos/OCDC-lucid-Test-Drive-20110523_140333.iso -enable-kvm -m 2G \ > -incoming exec:dd > > With lidb.ssmall.img.gz being generated from a 'migrate exec:dd of=...' > from qemu.git just a week or two ago. > > I can't bisect tonight but can attempt to tomorrow. How has this been > tested? > > I'm a little concerned here about the timing. With the Christmas > and New Years holiday we're pretty darn close to soft freeze for 1.4. > > Has this series gone through a full autotest run with multiple guests?
FYI, I'm having a heck of a time reproducing now attempting to do a bisect. This could indicate either a lingering build dependency problem or even that I merged the wrong branch previously. I'll keep testing and trying to reproduce. I still would like to see a full autotest run here though. Regards, Anthony Liguori > > Regards, > > Anthony Liguori > >> >> Migrating and idle guest with upstwream: >> >> (qemu) info migrate >> capabilities: xbzrle: off >> Migration status: completed >> total time: 34251 milliseconds >> downtime: 492 milliseconds >> transferred ram: 762458 kbytes >> remaining ram: 0 kbytes >> total ram: 14688768 kbytes >> duplicate: 3492606 pages >> normal: 189762 pages >> normal bytes: 759048 kbytes >> >> with this series of patches. >> >> (qemu) info migrate >> capabilities: xbzrle: off >> Migration status: completed >> total time: 30712 milliseconds >> downtime: 29 milliseconds >> transferred ram: 738857 kbytes >> remaining ram: 0 kbytes >> total ram: 14688768 kbytes >> duplicate: 3503423 pages >> normal: 176671 pages >> normal bytes: 706684 kbytes >> >> Notice the big difference in downtime. And that is also seen inside >> the guest a program that just do an idle loop seeing how "long" it >> takes to wait for 10ms. >> >> with upstream: >> >> [root@d1 ~]# ./timer >> delay of 452 ms >> delay of 114 ms >> delay of 136 ms >> delay of 135 ms >> delay of 136 ms >> delay of 131 ms >> delay of 134 ms >> >> with this series of patches, wait never takes 100ms, nothing is printed. >> >> Please pull. >> >> Thanks, Juan. >> >> >> The following changes since commit 27dd7730582be85c7d4f680f5f71146629809c86: >> >> Merge remote-tracking branch 'bonzini/header-dirs' into staging >> (2012-12-19 17:15:39 -0600) >> >> are available in the git repository at: >> >> >> git://repo.or.cz/qemu/quintela.git thread-20121220.next >> >> for you to fetch changes up to 9848a40427cd76628d04d918fa4751c542527915: >> >> migration: merge QEMUFileBuffered into MigrationState (2012-12-20 23:09:40 >> +0100) >> >> ---------------------------------------------------------------- >> Juan Quintela (25): >> migration: include qemu-file.h >> migration-fd: remove duplicate include >> buffered_file: Move from using a timer to use a thread >> migration: make qemu_fopen_ops_buffered() return void >> migration: move migration thread init code to migrate_fd_put_ready >> migration: make writes blocking >> migration: remove unfreeze logic >> migration: just lock migrate_fd_put_ready >> buffered_file: Unfold the trick to restart generating migration data >> buffered_file: don't flush on put buffer >> buffered_file: unfold buffered_append in buffered_put_buffer >> savevm: New save live migration method: pending >> migration: move buffered_file.c code into migration.c >> migration: add XFER_LIMIT_RATIO >> migration: move migration_fd_put_ready() >> migration: Inline qemu_fopen_ops_buffered into migrate_fd_connect >> migration: move migration notifier >> ram: rename last_block to last_seen_block >> ram: Add last_sent_block >> memory: introduce memory_region_test_and_clear_dirty >> ram: Use memory_region_test_and_clear_dirty >> ram: optimize migration bitmap walking >> ram: account the amount of transferred ram better >> ram: refactor ram_save_block() return value >> migration: merge QEMUFileBuffered into MigrationState >> >> Paolo Bonzini (7): >> migration: fix migration_bitmap leak >> buffered_file: do not send more than s->bytes_xfer bytes per tick >> migration: remove double call to migrate_fd_close >> exec: change ramlist from MRU order to a 1-item cache >> exec: change RAM list to a TAILQ >> exec: sort the memory from biggest to smallest >> migration: fix qemu_get_fd for BufferedFile >> >> Umesh Deshpande (2): >> add a version number to ram_list >> protect the ramlist with a separate mutex >> >> Makefile.objs | 3 +- >> arch_init.c | 245 +++++++++++++------------- >> block-migration.c | 49 ++---- >> buffered_file.c | 268 ----------------------------- >> buffered_file.h | 22 --- >> dump.c | 8 +- >> exec.c | 128 +++++++++----- >> include/exec/cpu-all.h | 15 +- >> include/exec/memory.h | 16 ++ >> include/migration/migration.h | 13 +- >> include/migration/qemu-file.h | 5 - >> include/migration/vmstate.h | 1 + >> include/sysemu/sysemu.h | 1 + >> memory.c | 16 ++ >> memory_mapping.c | 4 +- >> migration-exec.c | 3 +- >> migration-fd.c | 4 +- >> migration-tcp.c | 3 +- >> migration-unix.c | 3 +- >> migration.c | 390 >> +++++++++++++++++++++++++++++++----------- >> savevm.c | 24 ++- >> target-i386/arch_dump.c | 2 +- >> 22 files changed, 600 insertions(+), 623 deletions(-) >> delete mode 100644 buffered_file.c >> delete mode 100644 buffered_file.h