[Top][All Lists]

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

[Qemu-devel] [PATCH 0/6] migration: differentiate between pages and byte

From: Juan Quintela
Subject: [Qemu-devel] [PATCH 0/6] migration: differentiate between pages and bytes
Date: Thu, 12 Feb 2015 23:03:05 +0100


(Li special edition)

Current migration code returns number of bytes transferred and from
there we decide if we.have sent something or not.  Problem, we need
two results: number of pages written, and number of bytes written
(depending on compression, zero pages, etc, it is not possible to
derive one value from the other).

So, I changed all relevant function to return the number of written
pages, and then pass as uint64_t *bytes_transferred to update the
written bytes.

On current code, makes things a bit easier to understand, but is not
strictely necesary.  But for the compression patches from Li, it makes
a big difference, we can return that we have written a page, even if
we have just started the write, but having writtten in reality zero

Once there, I add doxygen documentation to all function that I touched
(yes, I was long due).

save_block_hdr really saved headers for pages, not blocks.  Rename it,
and simplify the interface.

Li, does this make your life easier?  I hope so.  Should make really
easy to remove the one_bytes_sent "hack", and allow my other suggestions.


Later, Juan.

PD.  Code is obviously correct, but I run it through virt-test
     anyways.  And it failed :-(  In despair, I tried virt-test on HEAD,
     and it also failed, so ....  I add another thing to my ToDo list.

PD2.  Modifying ram_save_page() has become complicated, very
      complicated. I think that know a couple of simplications, but
      require touching RDMA code, and anyways, fixing migration in
      "master" looks like a higher priority.

Juan Quintela (6):
  ram: make all save_page functions take a uint64_t parameter
  ram_find_and_save_block:  change calling convention
  ram_save_page: change calling covention
  save_xbzrle_page: change calling convention
  save_block_hdr: we can recalculate the cont parameter here
  rename save_block_hdr to save_page_header

 arch_init.c                   | 176 ++++++++++++++++++++++++++----------------
 include/migration/migration.h |   2 +-
 include/migration/qemu-file.h |   2 +-
 migration/qemu-file.c         |   3 +-
 migration/rdma.c              |   2 +-
 5 files changed, 114 insertions(+), 71 deletions(-)


reply via email to

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