Re: [GIT PULL 00/36] KVM: s390: Features and Enhancements for 5.7 part1

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



ping.

On 09.03.20 09:50, Christian Borntraeger wrote:
> Paolo,
> 
> an early pull request containing mostly the protected virtualization guest
> support. Some remarks:
> 
> 1.To avoid conflicts I would rather add this early. We do have in KVM
> common code:
> - a new capability KVM_CAP_S390_PROTECTED = 180
> - a new ioctl  KVM_S390_PV_COMMAND =  _IOWR(KVMIO, 0xc5, struct kvm_pv_cmd)
> - data structures for KVM_S390_PV_COMMAND
> - new MEMOP ioctl subfunctions
> - new files under Documentation
> - additions to api.rst 4.125 KVM_S390_PV_COMMAND
> 
> 2. There is an mm patch in Andrews mm tree which is needed for full
> functionality. The patch is not necessary to build KVM or to run non
> protected KVM though. So this can go independently.
> 
> 3. I created a topic branch for the non-kvm s390x parts that I merged
> in. Vasily, Heiko or myself will pull that into the s390 tree if there
> will be a conflict.
> 
> 
> The following changes since commit 11a48a5a18c63fd7621bb050228cebf13566e4d8:
> 
>   Linux 5.6-rc2 (2020-02-16 13:16:59 -0800)
> 
> are available in the Git repository at:
> 
>   git://git.kernel.org/pub/scm/linux/kernel/git/kvms390/linux.git  tags/kvm-s390-next-5.7-1
> 
> for you to fetch changes up to cc674ef252f4750bdcea1560ff491081bb960954:
> 
>   KVM: s390: introduce module parameter kvm.use_gisa (2020-02-27 19:47:13 +0100)
> 
> ----------------------------------------------------------------
> KVM: s390: Features and Enhancements for 5.7 part1
> 
> 1. Allow to disable gisa
> 2. protected virtual machines
>   Protected VMs (PVM) are KVM VMs, where KVM can't access the VM's
>   state like guest memory and guest registers anymore. Instead the
>   PVMs are mostly managed by a new entity called Ultravisor (UV),
>   which provides an API, so KVM and the PV can request management
>   actions.
> 
>   PVMs are encrypted at rest and protected from hypervisor access
>   while running.  They switch from a normal operation into protected
>   mode, so we can still use the standard boot process to load a
>   encrypted blob and then move it into protected mode.
> 
>   Rebooting is only possible by passing through the unprotected/normal
>   mode and switching to protected again.
> 
>   One mm related patch will go via Andrews mm tree ( mm/gup/writeback:
>   add callbacks for inaccessible pages)
> 
> ----------------------------------------------------------------
> Christian Borntraeger (5):
>       Merge branch 'pvbase' of git://git.kernel.org/.../kvms390/linux into HEAD
>       KVM: s390/mm: Make pages accessible before destroying the guest
>       KVM: s390: protvirt: Add SCLP interrupt handling
>       KVM: s390: protvirt: do not inject interrupts after start
>       KVM: s390: protvirt: introduce and enable KVM_CAP_S390_PROTECTED
> 
> Claudio Imbrenda (2):
>       s390/mm: provide memory management functions for protected KVM guests
>       KVM: s390/mm: handle guest unpin events
> 
> Janosch Frank (24):
>       s390/protvirt: Add sysfs firmware interface for Ultravisor information
>       KVM: s390: protvirt: Add UV debug trace
>       KVM: s390: add new variants of UV CALL
>       KVM: s390: protvirt: Add initial vm and cpu lifecycle handling
>       KVM: s390: protvirt: Secure memory is not mergeable
>       KVM: s390: protvirt: Handle SE notification interceptions
>       KVM: s390: protvirt: Instruction emulation
>       KVM: s390: protvirt: Handle spec exception loops
>       KVM: s390: protvirt: Add new gprs location handling
>       KVM: S390: protvirt: Introduce instruction data area bounce buffer
>       KVM: s390: protvirt: handle secure guest prefix pages
>       KVM: s390: protvirt: Write sthyi data to instruction data area
>       KVM: s390: protvirt: STSI handling
>       KVM: s390: protvirt: disallow one_reg
>       KVM: s390: protvirt: Do only reset registers that are accessible
>       KVM: s390: protvirt: Only sync fmt4 registers
>       KVM: s390: protvirt: Add program exception injection
>       KVM: s390: protvirt: UV calls in support of diag308 0, 1
>       KVM: s390: protvirt: Report CPU state to Ultravisor
>       KVM: s390: protvirt: Support cmd 5 operation state
>       KVM: s390: protvirt: Mask PSW interrupt bits for interception 104 and 112
>       KVM: s390: protvirt: Add UV cpu reset calls
>       DOCUMENTATION: Protected virtual machine introduction and IPL
>       KVM: s390: protvirt: Add KVM api documentation
> 
> Michael Mueller (2):
>       KVM: s390: protvirt: Implement interrupt injection
>       KVM: s390: introduce module parameter kvm.use_gisa
> 
> Ulrich Weigand (1):
>       KVM: s390/interrupt: do not pin adapter interrupt pages
> 
> Vasily Gorbik (3):
>       s390/protvirt: introduce host side setup
>       s390/protvirt: add ultravisor initialization
>       s390/mm: add (non)secure page access exceptions handlers
> 
>  Documentation/admin-guide/kernel-parameters.txt |   5 +
>  Documentation/virt/kvm/api.rst                  |  65 ++-
>  Documentation/virt/kvm/devices/s390_flic.rst    |  11 +-
>  Documentation/virt/kvm/index.rst                |   2 +
>  Documentation/virt/kvm/s390-pv-boot.rst         |  84 ++++
>  Documentation/virt/kvm/s390-pv.rst              | 116 +++++
>  MAINTAINERS                                     |   1 +
>  arch/s390/boot/Makefile                         |   2 +-
>  arch/s390/boot/uv.c                             |  20 +
>  arch/s390/include/asm/gmap.h                    |   6 +
>  arch/s390/include/asm/kvm_host.h                | 113 ++++-
>  arch/s390/include/asm/mmu.h                     |   2 +
>  arch/s390/include/asm/mmu_context.h             |   1 +
>  arch/s390/include/asm/page.h                    |   5 +
>  arch/s390/include/asm/pgtable.h                 |  35 +-
>  arch/s390/include/asm/uv.h                      | 251 ++++++++++-
>  arch/s390/kernel/Makefile                       |   1 +
>  arch/s390/kernel/entry.h                        |   2 +
>  arch/s390/kernel/pgm_check.S                    |   4 +-
>  arch/s390/kernel/setup.c                        |   9 +-
>  arch/s390/kernel/uv.c                           | 414 +++++++++++++++++
>  arch/s390/kvm/Makefile                          |   2 +-
>  arch/s390/kvm/diag.c                            |   6 +-
>  arch/s390/kvm/intercept.c                       | 122 ++++-
>  arch/s390/kvm/interrupt.c                       | 399 ++++++++++-------
>  arch/s390/kvm/kvm-s390.c                        | 567 +++++++++++++++++++++---
>  arch/s390/kvm/kvm-s390.h                        |  51 ++-
>  arch/s390/kvm/priv.c                            |  13 +-
>  arch/s390/kvm/pv.c                              | 303 +++++++++++++
>  arch/s390/mm/fault.c                            |  78 ++++
>  arch/s390/mm/gmap.c                             |  65 ++-
>  include/uapi/linux/kvm.h                        |  43 +-
>  32 files changed, 2488 insertions(+), 310 deletions(-)
>  create mode 100644 Documentation/virt/kvm/s390-pv-boot.rst
>  create mode 100644 Documentation/virt/kvm/s390-pv.rst
>  create mode 100644 arch/s390/kernel/uv.c
>  create mode 100644 arch/s390/kvm/pv.c
> 




[Index of Archives]     [KVM ARM]     [KVM ia64]     [KVM ppc]     [Virtualization Tools]     [Spice Development]     [Libvirt]     [Libvirt Users]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite Questions]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux