mbox

[GIT,PULL,00/26] KVM/arm updates for 4.20

Message ID 20181019125901.185478-1-marc.zyngier@arm.com (mailing list archive)
State New, archived
Headers show

Pull-request

git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-for-v4.20

Message

Marc Zyngier Oct. 19, 2018, 12:58 p.m. UTC
Paolo, Radim,

This is the bulk of the KVM/arm changes for 4.20. This time, the
biggest change by far is the support for variable addressing range in
guests, allowing userspace to size arm64 VMs from 32 to 52bits instead
of the hard-coded 40bits we've enjoyed so far. Other than that, we
have a random selection of small fixes and cleanups.

Note that this will generate a few minor conflicts with the arm64 tree,
which should be resolved as per this branch[1].

Please pull,

	M.

[1] git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git merge-resolution-4.20

The following changes since commit 6bf4ca7fbc85d80446ac01c0d1d77db4d91a6d84:

  Linux 4.19-rc5 (2018-09-23 19:15:18 +0200)

are available in the Git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvmarm-for-v4.20

for you to fetch changes up to e4e11cc0f81ee7be17d6f6fb96128a6d51c0e838:

  KVM: arm64: Safety check PSTATE when entering guest and handle IL (2018-10-19 11:13:03 +0100)

----------------------------------------------------------------
KVM/arm updates for 4.20

- Improved guest IPA space support (32 to 52 bits)
- RAS event delivery for 32bit
- PMU fixes
- Guest entry hardening
- Various cleanups

----------------------------------------------------------------
Christoffer Dall (1):
      KVM: arm64: Safety check PSTATE when entering guest and handle IL

Dongjiu Geng (2):
      arm/arm64: KVM: Rename function kvm_arch_dev_ioctl_check_extension()
      arm/arm64: KVM: Enable 32 bits kvm vcpu events support

Kristina Martsenko (1):
      vgic: Add support for 52bit guest physical address

Marc Zyngier (2):
      KVM: arm/arm64: Rename kvm_arm_config_vm to kvm_arm_setup_stage2
      KVM: arm64: Drop __cpu_init_stage2 on the VHE path

Mark Rutland (1):
      KVM: arm64: Fix caching of host MDCR_EL2 value

Punit Agrawal (1):
      KVM: arm/arm64: Ensure only THP is candidate for adjustment

Suzuki K Poulose (17):
      kvm: arm/arm64: Fix stage2_flush_memslot for 4 level page table
      kvm: arm/arm64: Remove spurious WARN_ON
      kvm: arm64: Add helper for loading the stage2 setting for a VM
      arm64: Add a helper for PARange to physical shift conversion
      kvm: arm64: Clean up VTCR_EL2 initialisation
      kvm: arm/arm64: Allow arch specific configurations for VM
      kvm: arm64: Configure VTCR_EL2 per VM
      kvm: arm/arm64: Prepare for VM specific stage2 translations
      kvm: arm64: Prepare for dynamic stage2 page table layout
      kvm: arm64: Make stage2 page table layout dynamic
      kvm: arm64: Dynamic configuration of VTTBR mask
      kvm: arm64: Configure VTCR_EL2.SL0 per VM
      kvm: arm64: Switch to per VM IPA limit
      kvm: arm64: Add 52bit support for PAR to HPFAR conversoin
      kvm: arm64: Set a limit on the IPA size
      kvm: arm64: Limit the minimum number of page table levels
      kvm: arm64: Allow tuning the physical address size for VM

zhong jiang (1):
      arm64: KVM: Remove some extra semicolon in kvm_target_cpu

 Documentation/virtual/kvm/api.txt             |  31 ++++
 arch/arm/include/asm/kvm_arm.h                |   3 +-
 arch/arm/include/asm/kvm_host.h               |  13 +-
 arch/arm/include/asm/kvm_mmu.h                |  15 +-
 arch/arm/include/asm/stage2_pgtable.h         |  54 +++---
 arch/arm64/include/asm/cpufeature.h           |  20 +++
 arch/arm64/include/asm/kvm_arm.h              | 155 +++++++++++++----
 arch/arm64/include/asm/kvm_asm.h              |   3 +-
 arch/arm64/include/asm/kvm_host.h             |  18 +-
 arch/arm64/include/asm/kvm_hyp.h              |  10 ++
 arch/arm64/include/asm/kvm_mmu.h              |  42 ++++-
 arch/arm64/include/asm/ptrace.h               |   3 +
 arch/arm64/include/asm/stage2_pgtable-nopmd.h |  42 -----
 arch/arm64/include/asm/stage2_pgtable-nopud.h |  39 -----
 arch/arm64/include/asm/stage2_pgtable.h       | 236 +++++++++++++++++++-------
 arch/arm64/kvm/guest.c                        |   6 +-
 arch/arm64/kvm/handle_exit.c                  |   7 +
 arch/arm64/kvm/hyp/Makefile                   |   1 -
 arch/arm64/kvm/hyp/hyp-entry.S                |  16 +-
 arch/arm64/kvm/hyp/s2-setup.c                 |  90 ----------
 arch/arm64/kvm/hyp/switch.c                   |   4 +-
 arch/arm64/kvm/hyp/sysreg-sr.c                |  19 ++-
 arch/arm64/kvm/hyp/tlb.c                      |   4 +-
 arch/arm64/kvm/reset.c                        | 108 +++++++++++-
 include/linux/irqchip/arm-gic-v3.h            |   5 +
 include/uapi/linux/kvm.h                      |  10 ++
 virt/kvm/arm/arm.c                            |  26 ++-
 virt/kvm/arm/mmu.c                            | 128 +++++++-------
 virt/kvm/arm/vgic/vgic-its.c                  |  36 ++--
 virt/kvm/arm/vgic/vgic-kvm-device.c           |   2 +-
 virt/kvm/arm/vgic/vgic-mmio-v3.c              |   2 -
 31 files changed, 717 insertions(+), 431 deletions(-)
 delete mode 100644 arch/arm64/include/asm/stage2_pgtable-nopmd.h
 delete mode 100644 arch/arm64/include/asm/stage2_pgtable-nopud.h
 delete mode 100644 arch/arm64/kvm/hyp/s2-setup.c

Comments

Paolo Bonzini Oct. 19, 2018, 1:23 p.m. UTC | #1
On 19/10/2018 14:58, Marc Zyngier wrote:
> Paolo, Radim,
> 
> This is the bulk of the KVM/arm changes for 4.20. This time, the
> biggest change by far is the support for variable addressing range in
> guests, allowing userspace to size arm64 VMs from 32 to 52bits instead
> of the hard-coded 40bits we've enjoyed so far. Other than that, we
> have a random selection of small fixes and cleanups.
> 
> Note that this will generate a few minor conflicts with the arm64 tree,
> which should be resolved as per this branch[1].

That's a bit annoying.  KVM parts of "Support Common Not Private
translations" should not have gone through the arm64 tree.  Instead,
Catalin should have placed the first patches in a topic branch for you
to pull.

This minimizes the effort for everyone else, basically.  Conflicts need
to be sorted out by Stephen Rothwell, myself and Linus/Greg, while topic
branches just work.

If it weren't for the include/uapi/linux/kvm.h change, where I have to
sort the capability numbers as they are assigned by the various
architecture maintainers(*), I would have told you to just send the pull
request to Catalin this time through (but that would just be a band-aid,
it should not be the norm).  Anyway, just remember this next time.

Thanks,

Paolo

	(*) That's also a bit suboptimal, because it complicates
	    debugging of new features after they're merged, but I have
	    no better idea.