All of lore.kernel.org
 help / color / mirror / Atom feed
* [Qemu-devel] [RFC 00/13] Multifd v2
@ 2016-10-21 19:42 Juan Quintela
  2016-10-21 19:42 ` [Qemu-devel] [PATCH 01/13] migration: create Migration Incoming State at init time Juan Quintela
                   ` (13 more replies)
  0 siblings, 14 replies; 27+ messages in thread
From: Juan Quintela @ 2016-10-21 19:42 UTC (permalink / raw)
  To: qemu-devel; +Cc: amit.shah, dgilbert

Hi

This is a version against current code.  It is based on top of QIO
work. It improves the thread synchronization and fixes the problem
when we could have two threads handing the same page.

Please comment, Juan.

Juan Quintela (13):
  migration: create Migration Incoming State at init time
  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
  migration: flush receive queue

 hmp.c                         |   9 +
 include/migration/migration.h |  16 +-
 migration/migration.c         |  93 +++++++---
 migration/ram.c               | 420 +++++++++++++++++++++++++++++++++++++++++-
 migration/savevm.c            |   4 +-
 migration/socket.c            |  53 +++++-
 qapi-schema.json              |  20 +-
 7 files changed, 580 insertions(+), 35 deletions(-)

-- 
2.7.4

^ permalink raw reply	[flat|nested] 27+ messages in thread
* [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
  0 siblings, 1 reply; 27+ 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] 27+ messages in thread

end of thread, other threads:[~2017-01-23 17:15 UTC | newest]

Thread overview: 27+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-10-21 19:42 [Qemu-devel] [RFC 00/13] Multifd v2 Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 01/13] migration: create Migration Incoming State at init time Juan Quintela
2016-10-26 18:05   ` Dr. David Alan Gilbert
2016-10-21 19:42 ` [Qemu-devel] [PATCH 02/13] migration: [HACK] Don't create decompression threads if not enabled Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 03/13] migration: Add multifd capability Juan Quintela
2016-10-26 17:57   ` Dr. David Alan Gilbert
2016-10-21 19:42 ` [Qemu-devel] [PATCH 04/13] migration: Create x-multifd-threads parameter Juan Quintela
2016-10-26 18:33   ` Dr. David Alan Gilbert
2016-10-26 21:16   ` Eric Blake
2016-10-21 19:42 ` [Qemu-devel] [PATCH 05/13] migration: create multifd migration threads Juan Quintela
2016-10-26 18:43   ` Dr. David Alan Gilbert
2017-01-23 17:15     ` Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 06/13] migration: Start of multiple fd work Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 07/13] migration: create ram_multifd_page Juan Quintela
2016-10-26 18:50   ` Dr. David Alan Gilbert
2017-01-23 17:13     ` Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 08/13] migration: Create thread infrastructure for multifd send side Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 09/13] migration: Send the fd number which we are going to use for this page Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 10/13] migration: Create thread infrastructure for multifd recv side Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 11/13] migration: Test new fd infrastructure Juan Quintela
2016-10-21 19:42 ` [Qemu-devel] [PATCH 12/13] migration: [HACK]Transfer pages over new channels Juan Quintela
2016-10-26 19:08   ` Dr. David Alan Gilbert
2016-10-21 19:42 ` [Qemu-devel] [PATCH 13/13] migration: flush receive queue Juan Quintela
2016-10-26 19:10   ` Dr. David Alan Gilbert
2016-10-21 20:26 ` [Qemu-devel] [RFC 00/13] Multifd v2 no-reply
  -- strict thread matches above, loose matches on Subject: below --
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

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.