From patchwork Mon Oct 29 14:11:25 2012 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [00/18] Migration thread lite (20121029) X-Patchwork-Submitter: Juan Quintela X-Patchwork-Id: 195003 Message-Id: <1351519903-26607-1-git-send-email-quintela@redhat.com> To: qemu-devel@nongnu.org Cc: owasserm@redhat.com, mtosatti@redhat.com, avi@redhat.com, pbonzini@redhat.com Date: Mon, 29 Oct 2012 15:11:25 +0100 From: Juan Quintela List-Id: Hi After discussing with Anthony and Paolo, this is the minimal migration thread support that we can do for 1.3. - fixed all the comments (thanks eric, paolo and orit). - buffered_file.c remains until 1.4. - testing for vinod showed very nice results, that is why the bitmap handling optimizations remain. Note: Writes has become blocking, and I have to change the "remove" the feature now in qemu-sockets.c. Checked that migration was the only user of that feature. If new users appear, they just need to add the socket_set_nonblock() by hand. Please, review. Thanks, Juan. The following changes since commit 50cd72148211c5e5f22ea2519d19ce024226e61f: hw/xtensa_sim: get rid of intermediate xtensa_sim_init (2012-10-27 15:04:00 +0000) are available in the git repository at: http://repo.or.cz/r/qemu/quintela.git migration-thread-20121029 for you to fetch changes up to 2c74654f19efc7db35117a87c0d9db4776931e1b: ram: optimize migration bitmap walking (2012-10-29 14:14:28 +0100) Juan Quintela (15): buffered_file: Move from using a timer to use a thread migration: make qemu_fopen_ops_buffered() return void migration: stop all cpus correctly migration: make writes blocking migration: remove unfreeze logic migration: take finer locking 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: include qemu-file.h migration-fd: remove duplicate include memory: introduce memory_region_test_and_clear_dirty ram: Use memory_region_test_and_clear_dirty ram: optimize migration bitmap walking Paolo Bonzini (1): split MRU ram list Umesh Deshpande (2): add a version number to ram_list protect the ramlist with a separate mutex arch_init.c | 115 ++++++++++++++++++++++++----------------------- block-migration.c | 49 +++++--------------- buffered_file.c | 130 +++++++++++++++++++++++++----------------------------- buffered_file.h | 2 +- cpu-all.h | 15 ++++++- exec.c | 44 +++++++++++++++--- memory.c | 16 +++++++ memory.h | 18 ++++++++ migration-exec.c | 3 +- migration-fd.c | 4 +- migration-tcp.c | 2 +- migration-unix.c | 2 +- migration.c | 100 ++++++++++++++++------------------------- migration.h | 4 +- qemu-file.h | 5 --- qemu-sockets.c | 4 -- savevm.c | 24 +++++++--- sysemu.h | 1 + vmstate.h | 1 + 19 files changed, 280 insertions(+), 259 deletions(-)