qemu-devel
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Qemu-devel] [PULL 00/34] migration thread and queue


From: Anthony Liguori
Subject: Re: [Qemu-devel] [PULL 00/34] migration thread and queue
Date: Fri, 21 Dec 2012 08:14:23 -0600
User-agent: Notmuch/0.13.2+93~ged93d79 (http://notmuchmail.org) Emacs/23.3.1 (x86_64-pc-linux-gnu)

Anthony Liguori <address@hidden> writes:

> Juan Quintela <address@hidden> 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:
>>
>> address@hidden ~]# ./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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]