qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [PATCH 00/18] Migration thread lite (20121029)
@ 2012-10-29 14:11 Juan Quintela
  0 siblings, 0 replies; 3+ messages in thread
From: Juan Quintela @ 2012-10-29 14:11 UTC (permalink / raw)
  To: qemu-devel; +Cc: owasserm, mtosatti, avi, pbonzini

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(-)

-- 
1.7.11.7

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH 00/18] Migration thread lite (20121029)
       [not found] <4168C988EBDF2141B4E0B6475B6A73D101905D46@G6W2493.americas.hpqcorp.net>
@ 2012-10-29 16:33 ` Chegu Vinod
  2012-10-29 17:33   ` Juan Quintela
  0 siblings, 1 reply; 3+ messages in thread
From: Chegu Vinod @ 2012-10-29 16:33 UTC (permalink / raw)
  To: Juan Jose Quintela Carreira, qemu-devel

On 10/29/2012 9:21 AM, Vinod, Chegu wrote:
> Date: Mon, 29 Oct 2012 15:11:25 +0100
> From: Juan Quintela <quintela@redhat.com>
> To: qemu-devel@nongnu.org
> Cc: owasserm@redhat.com, mtosatti@redhat.com, avi@redhat.com,
> 	pbonzini@redhat.com
> Subject: [Qemu-devel] [PATCH 00/18] Migration thread lite (20121029)
>
> 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.

Hi Juan,

Is there any value in calling the migration_bitmap_synch() routine in 
the ram_save_setup() . All the
pages were marked as dirty to begin with...so can't we just assume that 
all pages need to be sent
and proceed ?

migration_bitmap_synch () - still remains an expensive call. and the 
very first call to seems to be ~3x times
  more expensive than the subsequent calls. For large guests (>128G 
guests) this is multiple seconds...and
it freezes the OS instance.

Thanks
Vinod


> 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(-)
>
> --
> 1.7.11.7
>
>
>
>
>
> .
>

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [PATCH 00/18] Migration thread lite (20121029)
  2012-10-29 16:33 ` [Qemu-devel] [PATCH 00/18] Migration thread lite (20121029) Chegu Vinod
@ 2012-10-29 17:33   ` Juan Quintela
  0 siblings, 0 replies; 3+ messages in thread
From: Juan Quintela @ 2012-10-29 17:33 UTC (permalink / raw)
  To: Chegu Vinod; +Cc: qemu-devel

Chegu Vinod <chegu_vinod@hp.com> wrote:
> On 10/29/2012 9:21 AM, Vinod, Chegu wrote:
>> Date: Mon, 29 Oct 2012 15:11:25 +0100
>> From: Juan Quintela <quintela@redhat.com>
>> To: qemu-devel@nongnu.org
>> Cc: owasserm@redhat.com, mtosatti@redhat.com, avi@redhat.com,
>> 	pbonzini@redhat.com
>> Subject: [Qemu-devel] [PATCH 00/18] Migration thread lite (20121029)
>>
>> 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.
>
> Hi Juan,
>
> Is there any value in calling the migration_bitmap_synch() routine in
> the ram_save_setup() . All the
> pages were marked as dirty to begin with...so can't we just assume
> that all pages need to be sent
> and proceed ?

I haven't investigated it fully, but if we don't do it, we end sending
each page twice.  As said that needs more investigation.

>
> migration_bitmap_synch () - still remains an expensive call. and the
> very first call to seems to be ~3x times
>  more expensive than the subsequent calls. For large guests (>128G
> guests) this is multiple seconds...and
> it freezes the OS instance.

Will try to implement the other optimizaton, but that is 1.4 material
:-(

Later, Juan.)

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2012-10-29 17:33 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
     [not found] <4168C988EBDF2141B4E0B6475B6A73D101905D46@G6W2493.americas.hpqcorp.net>
2012-10-29 16:33 ` [Qemu-devel] [PATCH 00/18] Migration thread lite (20121029) Chegu Vinod
2012-10-29 17:33   ` Juan Quintela
2012-10-29 14:11 Juan Quintela

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).