[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] [PATCH v3 00/16] Postcopy: Hugepage support
From: |
Dr. David Alan Gilbert (git) |
Subject: |
[Qemu-devel] [PATCH v3 00/16] Postcopy: Hugepage support |
Date: |
Fri, 24 Feb 2017 18:28:28 +0000 |
From: "Dr. David Alan Gilbert" <address@hidden>
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
- [Qemu-devel] [PATCH v3 00/16] Postcopy: Hugepage support,
Dr. David Alan Gilbert (git) <=
- [Qemu-devel] [PATCH v3 02/16] postcopy: Transmit and compare individual page sizes, Dr. David Alan Gilbert (git), 2017/02/24
- [Qemu-devel] [PATCH v3 01/16] postcopy: Transmit ram size summary word, Dr. David Alan Gilbert (git), 2017/02/24
- [Qemu-devel] [PATCH v3 03/16] postcopy: Chunk discards for hugepages, Dr. David Alan Gilbert (git), 2017/02/24
- [Qemu-devel] [PATCH v3 04/16] exec: ram_block_discard_range, Dr. David Alan Gilbert (git), 2017/02/24
- [Qemu-devel] [PATCH v3 06/16] postcopy: Record largest page size, Dr. David Alan Gilbert (git), 2017/02/24
- [Qemu-devel] [PATCH v3 08/16] postcopy: Use temporary for placing zero huge pages, Dr. David Alan Gilbert (git), 2017/02/24
- [Qemu-devel] [PATCH v3 05/16] postcopy: enhance ram_block_discard_range for hugepages, Dr. David Alan Gilbert (git), 2017/02/24
- [Qemu-devel] [PATCH v3 07/16] postcopy: Plumb pagesize down into place helpers, Dr. David Alan Gilbert (git), 2017/02/24
- [Qemu-devel] [PATCH v3 10/16] postcopy: Mask fault addresses to huge page boundary, Dr. David Alan Gilbert (git), 2017/02/24