qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 00/13] Multiple fd migration support
@ 2016-04-20 14:44 Juan Quintela
  2016-04-20 14:44 ` [Qemu-devel] [PATCH 01/13] migration: create Migration Incoming State at init time Juan Quintela
                   ` (14 more replies)
  0 siblings, 15 replies; 21+ messages in thread
From: Juan Quintela @ 2016-04-20 14:44 UTC (permalink / raw)
  To: qemu-devel; +Cc: amit.shah, dgilbert

Hi

This patch series is "an" initial implementation of multiple fd migration.
This is to get something out for others to comment, it is not finished at all.

So far:

- we create threads for each new fd

- only for tcp of course, rest of transports are out of luck
  I need to integrate this with daniel channel changes

- I *think* the locking is right, at least I don't get more random
  lookups (and yes, it was not trivial).  And yes, I think that the
  compression code locking is not completely correct.  I think it
  would be much, much better to do the compression code on top of this
  (will avoid a lot of copies), but I need to finish this first.

- Last patch, I add a BIG hack to try to know what the real bandwidth
  is.


Preleminar testing so far:

- quite good, the latency is much better, but was change so far, I
  think I found the problem for the random high latencies, but more
  testing is needed.

- under load, I think our bandwidth calculations are *not* completely
  correct (This is the way to spell it to be allowed for a family audience).


ToDo list:
- bandwidth calculation: I am going to send another mail
  with my ToDo list for migration, see there.

- stats: We need better stats, by thread, etc

- sincronize less times with the worker threads.
  right now we syncronize for each page, there are two obvious optimizations
  * send a list of pages each time we wakeup an fd
  * if we have to sent a HUGE page, dont' do a single split, just sent the whole page
    in one send() and read things with a single recv() on destination.
    My understanding is that this would make Transparent Huge pages trivial.
- measure things under bigger loads

Comments, please?

Later, Juan.

Juan Quintela (13):
  migration: create Migration Incoming State at init time
  migration: Pass TCP args in an struct
  migration: [HACK] Don't create decompression threads if not enabled
  migration: Add multifd capability
  migration: Create x-multifd-threads parameter
  migration: create multifd migration threads
  migration: Start of multiple fd work
  migration: create ram_multifd_page
  migration: Create thread infrastructure for multifd send side
  migration: Send the fd number which we are going to use for this page
  migration: Create thread infrastructure for multifd recv side
  migration: Test new fd infrastructure
  migration: [HACK]Transfer pages over new channels

 hmp.c                         |  10 ++
 include/migration/migration.h |  13 ++
 migration/migration.c         | 100 ++++++++----
 migration/ram.c               | 350 +++++++++++++++++++++++++++++++++++++++++-
 migration/savevm.c            |   3 +-
 migration/tcp.c               |  76 ++++++++-
 qapi-schema.json              |  29 +++-
 7 files changed, 540 insertions(+), 41 deletions(-)

-- 
2.5.5

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

end of thread, other threads:[~2016-04-26 12:38 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2016-04-20 14:44 [Qemu-devel] [RFC 00/13] Multiple fd migration support Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 01/13] migration: create Migration Incoming State at init time Juan Quintela
2016-04-22 11:27   ` Dr. David Alan Gilbert
2016-04-20 14:44 ` [Qemu-devel] [PATCH 02/13] migration: Pass TCP args in an struct Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 03/13] migration: [HACK] Don't create decompression threads if not enabled Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 04/13] migration: Add multifd capability Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 05/13] migration: Create x-multifd-threads parameter Juan Quintela
2016-04-22 11:37   ` Dr. David Alan Gilbert
2016-04-20 14:44 ` [Qemu-devel] [PATCH 06/13] migration: create multifd migration threads Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 07/13] migration: Start of multiple fd work Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 08/13] migration: create ram_multifd_page Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 09/13] migration: Create thread infrastructure for multifd send side Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 10/13] migration: Send the fd number which we are going to use for this page Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 11/13] migration: Create thread infrastructure for multifd recv side Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 12/13] migration: Test new fd infrastructure Juan Quintela
2016-04-20 14:44 ` [Qemu-devel] [PATCH 13/13] migration: [HACK]Transfer pages over new channels Juan Quintela
2016-04-22 12:09   ` Dr. David Alan Gilbert
2016-04-20 15:46 ` [Qemu-devel] [RFC 00/13] Multiple fd migration support Michael S. Tsirkin
2016-04-22 12:26 ` Dr. David Alan Gilbert
2016-04-25 16:53   ` Juan Quintela
2016-04-26 12:38     ` Dr. David Alan Gilbert

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