qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: "Dr. David Alan Gilbert (git)" <dgilbert@redhat.com>
To: qemu-devel@nongnu.org, quintela@redhat.com, lvivier@redhat.com
Cc: aarcange@redhat.com
Subject: [Qemu-devel] [PATCH v3 00/16] Postcopy: Hugepage support
Date: Fri, 24 Feb 2017 18:28:28 +0000	[thread overview]
Message-ID: <20170224182844.32452-1-dgilbert@redhat.com> (raw)

From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

Hi,
  The existing postcopy code, and the userfault kernel
code that supports it, only works for normal anonymous memory.
Kernel support for userfault on hugetlbfs has just
been merged in Linus's tree for 4.11 (see 4c9a7831b11 merge)

Note that while this code supports arbitrary sized hugepages,
it doesn't make sense with pages above the few-MB region,
so while 2MB is fine, 1GB is probably a bad idea;
this code waits for and transmits whole huge pages, and a
1GB page would take about 1 second to transfer over a 10Gbps
link - which is way too long to pause the destination for.

Note: 'postcopy: Update userfaultfd.h header' is now from
Paolo's recent header update run; it can be dropped as
soon as Paolo's goes in.

Dave

v3
  Added an extra check in 'postcopy: Add extra check for COPY function'
  Updates from Laurent's review:
    moved the CONFIG_FALLOCATE_PUNCH_HOLE from 'ram_block_discard_range'
    into the following 'enhance ram_block_discard_range for hugepages'
    Merged the ram_block_discard_range / Fold postcopy_ram_discard_range
    into ram_discard_range  patches
    Removed the excess rcu_read_lock in ram_block_discard_range
    Removed a removal of a blank line in 'Mask fault address'
  Updated the 'Update userfaultfd.h header' - that's now from Paolo's update


Dr. David Alan Gilbert (16):
  postcopy: Transmit ram size summary word
  postcopy: Transmit and compare individual page sizes
  postcopy: Chunk discards for hugepages
  exec: ram_block_discard_range
  postcopy: enhance ram_block_discard_range for hugepages
  postcopy: Record largest page size
  postcopy: Plumb pagesize down into place helpers
  postcopy: Use temporary for placing zero huge pages
  postcopy: Load huge pages in one go
  postcopy: Mask fault addresses to huge page boundary
  postcopy: Send whole huge pages
  postcopy: Allow hugepages
  postcopy: Update userfaultfd.h header
  postcopy: Check for userfault+hugepage feature
  postcopy: Add doc about hugepages and postcopy
  postcopy: Add extra check for COPY function

 docs/migration.txt                |  13 ++++
 exec.c                            |  83 ++++++++++++++++++++++
 include/exec/cpu-common.h         |   2 +
 include/migration/migration.h     |   3 +
 include/migration/postcopy-ram.h  |  13 ++--
 linux-headers/linux/userfaultfd.h |  67 +++++++++++++++---
 migration/migration.c             |   1 +
 migration/postcopy-ram.c          | 142 ++++++++++++++++++--------------------
 migration/ram.c                   | 109 ++++++++++++++++++-----------
 migration/savevm.c                |  32 ++++++---
 migration/trace-events            |   2 +-
 11 files changed, 319 insertions(+), 148 deletions(-)

-- 
2.9.3

             reply	other threads:[~2017-02-24 18:28 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-02-24 18:28 Dr. David Alan Gilbert (git) [this message]
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 01/16] postcopy: Transmit ram size summary word Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 02/16] postcopy: Transmit and compare individual page sizes Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 03/16] postcopy: Chunk discards for hugepages Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 04/16] exec: ram_block_discard_range Dr. David Alan Gilbert (git)
2017-02-26 19:23   ` Laurent Vivier
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 05/16] postcopy: enhance ram_block_discard_range for hugepages Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 06/16] postcopy: Record largest page size Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 07/16] postcopy: Plumb pagesize down into place helpers Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 08/16] postcopy: Use temporary for placing zero huge pages Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 09/16] postcopy: Load huge pages in one go Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 10/16] postcopy: Mask fault addresses to huge page boundary Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 11/16] postcopy: Send whole huge pages Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 12/16] postcopy: Allow hugepages Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 13/16] postcopy: Update userfaultfd.h header Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 14/16] postcopy: Check for userfault+hugepage feature Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 15/16] postcopy: Add doc about hugepages and postcopy Dr. David Alan Gilbert (git)
2017-02-24 18:28 ` [Qemu-devel] [PATCH v3 16/16] postcopy: Add extra check for COPY function Dr. David Alan Gilbert (git)
2017-02-26 19:16   ` Laurent Vivier

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20170224182844.32452-1-dgilbert@redhat.com \
    --to=dgilbert@redhat.com \
    --cc=aarcange@redhat.com \
    --cc=lvivier@redhat.com \
    --cc=qemu-devel@nongnu.org \
    --cc=quintela@redhat.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
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).