linux-s390.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [GIT PULL 00/51] KVM: s390: vSIE (nested virtualization) feature for 4.8 (kvm/next)
@ 2016-06-21 13:12 Christian Borntraeger
  2016-06-21 13:12 ` [GIT PULL 01/51] s390/kvm: page table invalidation notifier Christian Borntraeger
                   ` (51 more replies)
  0 siblings, 52 replies; 53+ messages in thread
From: Christian Borntraeger @ 2016-06-21 13:12 UTC (permalink / raw)
  To: Paolo Bonzini, Radim Krčmář
  Cc: KVM, Cornelia Huck, linux-s390, Christian Borntraeger,
	David Hildenbrand, Martin Schwidefsky

Paolo, Radim,

here is the first shot of nested virtualization for kvm/s390.
It requires an updated qemu[1] and the nested module parameter to
work. We are able to start multiple nested guests and are also
able to run nested under nested. As there are certainly still
some rough edges, the default of the nested paramter is off.

[1] https://github.com/cohuck/qemu/tree/cpumodel-s390x

This request has 
1. a change in include/linux/page_ref.h (with an ack from Andrew)
2. several changes in s390 base memory managedment (patches are either
   from Martin or acked-by martin)
3. a potential conflict with Paolos "speed up context-tracking system calls"
   series.

The following changes since commit 64672c95ea4c2f7096e519e826076867e8ef0938:

  kvm: vmx: hook preemption timer support (2016-06-16 10:07:50 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git  tags/kvm-s390-next-4.8-2

for you to fetch changes up to a411edf1320ed8fa3b4560902ac4e033c4a72bcf:

  KVM: s390: vsie: add module parameter "nested" (2016-06-21 09:43:47 +0200)

----------------------------------------------------------------
KVM: s390: vSIE (nested virtualization) feature for 4.8 (kvm/next)

With an updated QEMU this allows to create nested KVM guests
(KVM under KVM) on s390.

s390 memory management changes from Martin Schwidefsky or
acked by Martin. One common code memory management change (pageref)
acked by Andrew Morton.

The feature has to be enabled with the nested medule parameter.

----------------------------------------------------------------
David Hildenbrand (45):
      s390/mm: flush tlb of shadows in all situations
      s390/mm: shadow pages with real guest requested protection
      s390/mm: avoid races on region/segment/page table shadowing
      s390/mm: fix races on gmap_shadow creation
      s390/mm: take the mmap_sem in kvm_s390_shadow_fault()
      s390/mm: protection exceptions are corrrectly shadowed
      s390/mm: take ipte_lock during shadow faults
      s390/mm: push ste protection down to shadow pte
      s390/mm: prepare for EDAT1/EDAT2 support in gmap shadow
      s390/mm: support EDAT1 for gmap shadows
      s390/mm: support EDAT2 for gmap shadows
      s390/mm: push rte protection down to shadow pte
      s390/mm: support real-space for gmap shadows
      s390/mm: limit number of real-space gmap shadows
      s390/mm: remember the int code for the last gmap fault
      s390/mm: allow to check if a gmap shadow is valid
      s390/mm: don't fault everything in read-write in gmap_pte_op_fixup()
      KVM: s390: fast path for shadow gmaps in gmap notifier
      KVM: s390: backup the currently enabled gmap when scheduled out
      s390: introduce page_to_virt() and pfn_to_virt()
      mm/page_ref: introduce page_ref_inc_return
      KVM: s390: vsie: initial support for nested virtualization
      KVM: s390: vsie: optimize gmap prefix mapping
      KVM: s390: vsie: support setting the ibc
      KVM: s390: vsie: support edat1 / edat2
      KVM: s390: vsie: support host-protection-interruption
      KVM: s390: vsie: support STFLE interpretation
      KVM: s390: vsie: support aes dea wrapping keys
      KVM: s390: vsie: support transactional execution
      KVM: s390: vsie: support vectory facility (SIMD)
      KVM: s390: vsie: support run-time-instrumentation
      KVM: s390: vsie: support 64-bit-SCAO
      KVM: s390: vsie: support shared IPTE-interlock facility
      KVM: s390: vsie: support guest-PER-enhancement
      KVM: s390: vsie: support guest-storage-limit-suppression
      KVM: s390: vsie: support intervention-bypass
      KVM: s390: vsie: support conditional-external-interception
      KVM: s390: vsie: support IBS interpretation
      KVM: s390: vsie: try to refault after a reported fault to g2
      KVM: s390: vsie: speed up VCPU irq delivery when handling vsie
      KVM: s390: don't use CPUSTAT_WAIT to detect if a VCPU is idle
      KVM: s390: vsie: speed up VCPU external calls
      KVM: s390: vsie: correctly set and handle guest TOD
      KVM: s390: vsie: add indication for future features
      KVM: s390: vsie: add module parameter "nested"

Martin Schwidefsky (6):
      s390/kvm: page table invalidation notifier
      s390/mm: use RCU for gmap notifier list and the per-mm gmap list
      s390/mm: extended gmap pte notifier
      s390/mm: add reference counter to gmap structure
      s390/mm: add shadow gmap support
      s390/mm: add kvm shadow fault function

 arch/s390/include/asm/gmap.h        |   82 +-
 arch/s390/include/asm/kvm_host.h    |   21 +-
 arch/s390/include/asm/mmu.h         |   11 +-
 arch/s390/include/asm/mmu_context.h |    3 +-
 arch/s390/include/asm/page.h        |    2 +
 arch/s390/include/asm/pgalloc.h     |    2 +
 arch/s390/include/asm/pgtable.h     |   10 +-
 arch/s390/include/asm/processor.h   |    2 +
 arch/s390/include/uapi/asm/kvm.h    |   12 +
 arch/s390/kvm/Makefile              |    2 +-
 arch/s390/kvm/gaccess.c             |  239 ++++++
 arch/s390/kvm/gaccess.h             |    3 +
 arch/s390/kvm/interrupt.c           |    5 +
 arch/s390/kvm/kvm-s390.c            |  111 ++-
 arch/s390/kvm/kvm-s390.h            |   10 +-
 arch/s390/kvm/priv.c                |    1 +
 arch/s390/kvm/sigp.c                |   10 +-
 arch/s390/kvm/vsie.c                | 1091 ++++++++++++++++++++++++
 arch/s390/mm/fault.c                |    2 +
 arch/s390/mm/gmap.c                 | 1590 +++++++++++++++++++++++++++++++++--
 arch/s390/mm/pgalloc.c              |   39 +-
 arch/s390/mm/pgtable.c              |  103 ++-
 include/linux/page_ref.h            |    9 +
 23 files changed, 3219 insertions(+), 141 deletions(-)
 create mode 100644 arch/s390/kvm/vsie.c

^ permalink raw reply	[flat|nested] 53+ messages in thread

end of thread, other threads:[~2016-06-21 13:22 UTC | newest]

Thread overview: 53+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-06-21 13:12 [GIT PULL 00/51] KVM: s390: vSIE (nested virtualization) feature for 4.8 (kvm/next) Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 01/51] s390/kvm: page table invalidation notifier Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 02/51] s390/mm: use RCU for gmap notifier list and the per-mm gmap list Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 03/51] s390/mm: extended gmap pte notifier Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 04/51] s390/mm: add reference counter to gmap structure Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 05/51] s390/mm: add shadow gmap support Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 06/51] s390/mm: add kvm shadow fault function Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 07/51] s390/mm: flush tlb of shadows in all situations Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 08/51] s390/mm: shadow pages with real guest requested protection Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 09/51] s390/mm: avoid races on region/segment/page table shadowing Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 10/51] s390/mm: fix races on gmap_shadow creation Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 11/51] s390/mm: take the mmap_sem in kvm_s390_shadow_fault() Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 12/51] s390/mm: protection exceptions are corrrectly shadowed Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 13/51] s390/mm: take ipte_lock during shadow faults Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 14/51] s390/mm: push ste protection down to shadow pte Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 15/51] s390/mm: prepare for EDAT1/EDAT2 support in gmap shadow Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 16/51] s390/mm: support EDAT1 for gmap shadows Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 17/51] s390/mm: support EDAT2 " Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 18/51] s390/mm: push rte protection down to shadow pte Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 19/51] s390/mm: support real-space for gmap shadows Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 20/51] s390/mm: limit number of real-space " Christian Borntraeger
2016-06-21 13:12 ` [GIT PULL 21/51] s390/mm: remember the int code for the last gmap fault Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 22/51] s390/mm: allow to check if a gmap shadow is valid Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 23/51] s390/mm: don't fault everything in read-write in gmap_pte_op_fixup() Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 24/51] KVM: s390: fast path for shadow gmaps in gmap notifier Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 25/51] KVM: s390: backup the currently enabled gmap when scheduled out Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 26/51] s390: introduce page_to_virt() and pfn_to_virt() Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 27/51] mm/page_ref: introduce page_ref_inc_return Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 28/51] KVM: s390: vsie: initial support for nested virtualization Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 29/51] KVM: s390: vsie: optimize gmap prefix mapping Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 30/51] KVM: s390: vsie: support setting the ibc Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 31/51] KVM: s390: vsie: support edat1 / edat2 Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 32/51] KVM: s390: vsie: support host-protection-interruption Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 33/51] KVM: s390: vsie: support STFLE interpretation Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 34/51] KVM: s390: vsie: support aes dea wrapping keys Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 35/51] KVM: s390: vsie: support transactional execution Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 36/51] KVM: s390: vsie: support vectory facility (SIMD) Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 37/51] KVM: s390: vsie: support run-time-instrumentation Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 38/51] KVM: s390: vsie: support 64-bit-SCAO Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 39/51] KVM: s390: vsie: support shared IPTE-interlock facility Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 40/51] KVM: s390: vsie: support guest-PER-enhancement Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 41/51] KVM: s390: vsie: support guest-storage-limit-suppression Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 42/51] KVM: s390: vsie: support intervention-bypass Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 43/51] KVM: s390: vsie: support conditional-external-interception Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 44/51] KVM: s390: vsie: support IBS interpretation Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 45/51] KVM: s390: vsie: try to refault after a reported fault to g2 Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 46/51] KVM: s390: vsie: speed up VCPU irq delivery when handling vsie Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 47/51] KVM: s390: don't use CPUSTAT_WAIT to detect if a VCPU is idle Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 48/51] KVM: s390: vsie: speed up VCPU external calls Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 49/51] KVM: s390: vsie: correctly set and handle guest TOD Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 50/51] KVM: s390: vsie: add indication for future features Christian Borntraeger
2016-06-21 13:13 ` [GIT PULL 51/51] KVM: s390: vsie: add module parameter "nested" Christian Borntraeger
2016-06-21 13:22 ` [GIT PULL 00/51] KVM: s390: vSIE (nested virtualization) feature for 4.8 (kvm/next) Paolo Bonzini

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).