lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <20161220054907.9204-1-david@gibson.dropbear.id.au>
Date:   Tue, 20 Dec 2016 16:48:56 +1100
From:   David Gibson <david@...son.dropbear.id.au>
To:     paulus@...ba.org, sjitindarsingh@...il.com
Cc:     benh@...nel.crashing.org, thuth@...hat.com, lvivier@...hat.com,
        linuxppc-dev@...ts.ozlabs.org, kvm@...r.kernel.org,
        linux-kernel@...r.kernel.org,
        David Gibson <david@...son.dropbear.id.au>
Subject: [PATCHv2 00/11] KVM implementation of PAPR HPT resizing extension

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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ