From: David Gibson <david@gibson.dropbear.id.au>
To: paulus@samba.org, sjitindarsingh@gmail.com
Cc: benh@kernel.crashing.org, thuth@redhat.com, lvivier@redhat.com,
linuxppc-dev@lists.ozlabs.org, kvm@vger.kernel.org,
linux-kernel@vger.kernel.org,
David Gibson <david@gibson.dropbear.id.au>
Subject: [PATCHv2 00/11] KVM implementation of PAPR HPT resizing extension
Date: Tue, 20 Dec 2016 16:48:56 +1100 [thread overview]
Message-ID: <20161220054907.9204-1-david@gibson.dropbear.id.au> (raw)
Here is the KVM implementation for the proposed PAPR extension which
allows the runtime resizing of a PAPR guest's Hashed Page Table (HPT).
Using this requires a guest kernel with support for the extension.
Patches for guest side support in Linux were posted earlier:
https://lists.ozlabs.org/pipermail/linuxppc-dev/2016-December/152164.html
It also requires userspace (i.e. qemu) to intercept the HPT resizing
hypercalls and invoke the KVM ioctl()s to implement them. This is
done instead of having KVM direclty intercept the hypercalls, so that
userspace can, if useful, impose additional restrictions on resizes:
for example it could refuse them entirely if policy for the VM
precludes resizing, or it could limit the size of HPT the guest can
request to meet resource limits.
Patches to implement the userspace part of HPT resizing are proposed
for qemu-2.9, and can be found at:
https://github.com/dgibson/qemu/tree/hpt-resize
I'm posting these now, in the hopes that both these and the
corresponding guest side patches can be staged and merged for the 4.11
window.
Changes in v2:
* Use a more normal and straightforward encoding of the capability
flags
* Add information to Documentation/virtual/kvm/api.txt
* Assorted minor cleanups based on review comments
David Gibson (11):
Documentation: Correct duplicate section number in kvm/api.txt
powerpc/kvm: HPT resizing documentation and reserved numbers
powerpc/kvm: Rename kvm_alloc_hpt() for clarity
powerpc/kvm: Gather HPT related variables into sub-structure
powerpc/kvm: Don't store values derivable from HPT order
powerpc/kvm: Split HPT allocation from activation
powerpc/kvm: Allow KVM_PPC_ALLOCATE_HTAB ioctl() to change HPT size
powerpc/kvm: Create kvmppc_unmap_hpte_helper()
powerpc/kvm: Outline of KVM-HV HPT resizing implementation
powerpc/kvm: KVM-HV HPT resizing implementation
powerpc/kvm: Advertise availablity of HPT resizing on KVM HV
Documentation/virtual/kvm/api.txt | 111 +++++-
arch/powerpc/include/asm/kvm_book3s_64.h | 16 +
arch/powerpc/include/asm/kvm_host.h | 21 +-
arch/powerpc/include/asm/kvm_ppc.h | 15 +-
arch/powerpc/kvm/book3s_64_mmu_hv.c | 625 +++++++++++++++++++++++++------
arch/powerpc/kvm/book3s_hv.c | 50 ++-
arch/powerpc/kvm/book3s_hv_builtin.c | 8 +-
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 62 +--
arch/powerpc/kvm/powerpc.c | 3 +
include/uapi/linux/kvm.h | 11 +
10 files changed, 741 insertions(+), 181 deletions(-)
--
2.9.3
next reply other threads:[~2016-12-20 5:49 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2016-12-20 5:48 David Gibson [this message]
2016-12-20 5:48 ` [PATCHv2 01/11] Documentation: Correct duplicate section number in kvm/api.txt David Gibson
2016-12-20 5:48 ` [PATCHv2 02/11] powerpc/kvm: HPT resizing documentation and reserved numbers David Gibson
2016-12-20 5:48 ` [PATCHv2 03/11] powerpc/kvm: Rename kvm_alloc_hpt() for clarity David Gibson
2016-12-20 5:49 ` [PATCHv2 04/11] powerpc/kvm: Gather HPT related variables into sub-structure David Gibson
2016-12-20 5:49 ` [PATCHv2 05/11] powerpc/kvm: Don't store values derivable from HPT order David Gibson
2016-12-20 5:49 ` [PATCHv2 06/11] powerpc/kvm: Split HPT allocation from activation David Gibson
2016-12-20 5:49 ` [PATCHv2 07/11] powerpc/kvm: Allow KVM_PPC_ALLOCATE_HTAB ioctl() to change HPT size David Gibson
2016-12-20 5:49 ` [PATCHv2 08/11] powerpc/kvm: Create kvmppc_unmap_hpte_helper() David Gibson
2016-12-20 5:49 ` [PATCHv2 09/11] powerpc/kvm: Outline of KVM-HV HPT resizing implementation David Gibson
2016-12-20 5:49 ` [PATCHv2 10/11] powerpc/kvm: " David Gibson
2016-12-20 5:49 ` [PATCHv2 11/11] powerpc/kvm: Advertise availablity of HPT resizing on KVM HV David Gibson
2017-01-31 22:18 ` [PATCHv2 00/11] KVM implementation of PAPR HPT resizing extension Paul Mackerras
2017-02-01 4:56 ` David Gibson
2017-02-01 5:07 ` Paul Mackerras
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=20161220054907.9204-1-david@gibson.dropbear.id.au \
--to=david@gibson.dropbear.id.au \
--cc=benh@kernel.crashing.org \
--cc=kvm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=lvivier@redhat.com \
--cc=paulus@samba.org \
--cc=sjitindarsingh@gmail.com \
--cc=thuth@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).