From: Bharata B Rao <bharata@linux.ibm.com>
To: linuxppc-dev@lists.ozlabs.org
Cc: linuxram@us.ibm.com, cclaudio@linux.ibm.com,
kvm-ppc@vger.kernel.org, Bharata B Rao <bharata@linux.ibm.com>,
linux-mm@kvack.org, jglisse@redhat.com,
aneesh.kumar@linux.vnet.ibm.com, paulus@au1.ibm.com,
sukadev@linux.vnet.ibm.com, hch@lst.de
Subject: [PATCH v9 0/8] KVM: PPC: Driver to manage pages of secure guest
Date: Wed, 25 Sep 2019 10:36:41 +0530 [thread overview]
Message-ID: <20190925050649.14926-1-bharata@linux.ibm.com> (raw)
[The main change in this version is the introduction of new
locking to prevent concurrent page-in and page-out calls. More
details about this are present in patch 2/8]
Hi,
A pseries guest can be run as a secure guest on Ultravisor-enabled
POWER platforms. On such platforms, this driver will be used to manage
the movement of guest pages between the normal memory managed by
hypervisor(HV) and secure memory managed by Ultravisor(UV).
Private ZONE_DEVICE memory equal to the amount of secure memory
available in the platform for running secure guests is created.
Whenever a page belonging to the guest becomes secure, a page from
this private device memory is used to represent and track that secure
page on the HV side. The movement of pages between normal and secure
memory is done via migrate_vma_pages(). The reverse movement is driven
via pagemap_ops.migrate_to_ram().
The page-in or page-out requests from UV will come to HV as hcalls and
HV will call back into UV via uvcalls to satisfy these page requests.
These patches are against hmm.git
(https://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma.git/log/?h=hmm)
plus
Claudio Carvalho's base ultravisor enablement patches that are present
in Michael Ellerman's tree
(https://git.kernel.org/pub/scm/linux/kernel/git/powerpc/linux.git/log/?h=topic/ppc-kvm)
These patches along with Claudio's above patches are required to
run secure pseries guests on KVM. This patchset is based on hmm.git
because hmm.git has migrate_vma cleanup and not-device memremap_pages
patchsets that are required by this patchset.
Changes in v9
=============
- Prevent concurrent page-in and page-out calls.
- Ensure device PFNs are allocated for zero-pages that are sent to UV.
- Failure to migrate a page during page-in will now return error via
hcall.
- Address review comments by Suka
- Misc cleanups
v8: https://lore.kernel.org/linux-mm/20190910082946.7849-2-bharata@linux.ibm.com/T/
Anshuman Khandual (1):
KVM: PPC: Ultravisor: Add PPC_UV config option
Bharata B Rao (6):
KVM: PPC: Move pages between normal and secure memory
KVM: PPC: Shared pages support for secure guests
KVM: PPC: H_SVM_INIT_START and H_SVM_INIT_DONE hcalls
KVM: PPC: Handle memory plug/unplug to secure VM
KVM: PPC: Radix changes for secure guest
KVM: PPC: Support reset of secure guest
Suraj Jitindar Singh (1):
KVM: PPC: Book3S HV: Define usage types for rmap array in guest
memslot
Documentation/virt/kvm/api.txt | 19 +
arch/powerpc/Kconfig | 17 +
arch/powerpc/include/asm/hvcall.h | 9 +
arch/powerpc/include/asm/kvm_book3s_uvmem.h | 48 ++
arch/powerpc/include/asm/kvm_host.h | 57 +-
arch/powerpc/include/asm/kvm_ppc.h | 2 +
arch/powerpc/include/asm/ultravisor-api.h | 6 +
arch/powerpc/include/asm/ultravisor.h | 36 ++
arch/powerpc/kvm/Makefile | 3 +
arch/powerpc/kvm/book3s_64_mmu_radix.c | 22 +
arch/powerpc/kvm/book3s_hv.c | 122 ++++
arch/powerpc/kvm/book3s_hv_rm_mmu.c | 2 +-
arch/powerpc/kvm/book3s_hv_uvmem.c | 673 ++++++++++++++++++++
arch/powerpc/kvm/powerpc.c | 12 +
include/uapi/linux/kvm.h | 1 +
15 files changed, 1024 insertions(+), 5 deletions(-)
create mode 100644 arch/powerpc/include/asm/kvm_book3s_uvmem.h
create mode 100644 arch/powerpc/kvm/book3s_hv_uvmem.c
--
2.21.0
next reply other threads:[~2019-09-25 5:09 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-09-25 5:06 Bharata B Rao [this message]
2019-09-25 5:06 ` [PATCH v9 1/8] KVM: PPC: Book3S HV: Define usage types for rmap array in guest memslot Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 2/8] KVM: PPC: Move pages between normal and secure memory Bharata B Rao
2019-09-25 12:12 ` Jason Gunthorpe
2019-10-18 3:00 ` Paul Mackerras
2019-10-22 6:29 ` Bharata B Rao
2019-10-23 4:17 ` Paul Mackerras
2019-10-23 5:41 ` Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 3/8] KVM: PPC: Shared pages support for secure guests Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 4/8] KVM: PPC: H_SVM_INIT_START and H_SVM_INIT_DONE hcalls Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 5/8] KVM: PPC: Handle memory plug/unplug to secure VM Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 6/8] KVM: PPC: Radix changes for secure guest Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 7/8] KVM: PPC: Support reset of " Bharata B Rao
2019-09-25 5:06 ` [PATCH v9 8/8] KVM: PPC: Ultravisor: Add PPC_UV config option Bharata B Rao
2019-09-25 12:14 ` [PATCH v9 0/8] KVM: PPC: Driver to manage pages of secure guest Jason Gunthorpe
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=20190925050649.14926-1-bharata@linux.ibm.com \
--to=bharata@linux.ibm.com \
--cc=aneesh.kumar@linux.vnet.ibm.com \
--cc=cclaudio@linux.ibm.com \
--cc=hch@lst.de \
--cc=jglisse@redhat.com \
--cc=kvm-ppc@vger.kernel.org \
--cc=linux-mm@kvack.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=linuxram@us.ibm.com \
--cc=paulus@au1.ibm.com \
--cc=sukadev@linux.vnet.ibm.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).