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 via a HMM device. The movement of pages between normal and secure memory is done by ->alloc_and_copy() callback routine of migrate_vma(). 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 apply and work on top of the base Ultravisor v4 patches posted by Claudio Carvalho at: https://www.mail-archive.com/linuxppc-dev@xxxxxxxxxxxxxxxx/msg152842.html Changes in v5 ============= - Hold kvm->srcu lock until we are done migrating the page. - Ensure we take heavier lock mmap_sem first before taking kvm->srcu lock. - Code reorgs, comments updates and commit messages updates. - Ensure we don't lookup HV side partition scoped page tables from memslot flush code, this is required for memory unplug to make progress. - Fix reboot of secure SMP guests by unpinng the VPA pages during reboot (Ram Pai). - Added documentation for the new KVM_PP_SVM_OFF ioctl. - Using different bit slot to differentiate HMM PFN from other uses of rmap entries. - Remove kvmppc_hmm_release_pfns() as releasing of HMM PFNs will be done by unmap_vmas() and its callers during VM shutdown. - Carrying the patch that adds CONFIG_PPC_UV with this patchset. v4: https://www.mail-archive.com/linuxppc-dev@xxxxxxxxxxxxxxxx/msg151156.html Anshuman Khandual (1): KVM: PPC: Ultravisor: Add PPC_UV config option Bharata B Rao (6): kvmppc: HMM backend driver to manage pages of secure guest kvmppc: Shared pages support for secure guests kvmppc: H_SVM_INIT_START and H_SVM_INIT_DONE hcalls kvmppc: Handle memory plug/unplug to secure VM kvmppc: Radix changes for secure guest kvmppc: Support reset of secure guest Documentation/virtual/kvm/api.txt | 19 + arch/powerpc/Kconfig | 20 + arch/powerpc/include/asm/hvcall.h | 9 + arch/powerpc/include/asm/kvm_book3s_hmm.h | 48 ++ arch/powerpc/include/asm/kvm_host.h | 28 + arch/powerpc/include/asm/kvm_ppc.h | 2 + arch/powerpc/include/asm/ultravisor-api.h | 6 + arch/powerpc/include/asm/ultravisor.h | 47 ++ arch/powerpc/kvm/Makefile | 3 + arch/powerpc/kvm/book3s_64_mmu_radix.c | 22 + arch/powerpc/kvm/book3s_hv.c | 115 ++++ arch/powerpc/kvm/book3s_hv_hmm.c | 656 ++++++++++++++++++++++ arch/powerpc/kvm/powerpc.c | 12 + include/uapi/linux/kvm.h | 1 + tools/include/uapi/linux/kvm.h | 1 + 15 files changed, 989 insertions(+) create mode 100644 arch/powerpc/include/asm/kvm_book3s_hmm.h create mode 100644 arch/powerpc/kvm/book3s_hv_hmm.c -- 2.21.0