[GIT PULL] KVM/ARM updates for 4.13

Marc Zyngier marc.zyngier at arm.com
Fri Jun 30 01:44:16 PDT 2017


Paolo, Radim,

This is the pull request for the 4.13 edition of KVM/ARM. Among the
changes this time around, a rework of the vcpu request infrastructure
and its adoption on ARM, a was for userspace to define which
interrupts get assigned to timer and PMU, a workaround for a nasty
erratum on Cavium HW, and a bit more. Some of the patches touch core
arm64 code, and are acked by the maintainers.

There will be a small clash with the s390 tree, as mentionned by
Stephen Rothwell, as well as with the arm64 tree. Both conflicts are
trivial to resolve, and linux-next got it right (as usual).

Please pull.

       M.

The following changes since commit 33b5c38852b29736f3b472dd095c9a18ec22746f:

  arm: KVM: Allow unaligned accesses at HYP (2017-06-06 22:20:02 +0200)

are available in the git repository at:

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

for you to fetch changes up to d38338e396ee0571b3502962fd2fbaec4d2d9a8f:

  arm64: Remove a redundancy in sysreg.h (2017-06-22 17:38:42 +0100)

----------------------------------------------------------------
KVM/ARM updates for 4.13

- vcpu request overhaul
- allow timer and PMU to have their interrupt number
  selected from userspace
- workaround for Cavium erratum 30115
- handling of memory poisonning
- the usual crop of fixes and cleanups

----------------------------------------------------------------
Andrew Jones (10):
      KVM: improve arch vcpu request defining
      KVM: Add documentation for VCPU requests
      KVM: arm/arm64: properly use vcpu requests
      KVM: arm/arm64: replace pause checks with vcpu request checks
      KVM: arm/arm64: use vcpu requests for power_off
      KVM: arm/arm64: optimize VCPU RUN
      KVM: arm/arm64: change exit request to sleep request
      KVM: arm/arm64: use vcpu requests for irq injection
      KVM: arm/arm64: PMU: remove request-less vcpu kick
      KVM: arm/arm64: timer: remove request-less vcpu kick

Christoffer Dall (13):
      KVM: arm/arm64: Allow GICv2 to supply a uaccess register function
      KVM: arm/arm64: Separate guest and uaccess writes to dist {sc}active
      KVM: arm/arm64: Simplify active_change_prepare and plug race
      KVM: arm/arm64: Use uaccess functions for GICv3 {sc}active
      KVM: arm64: Allow creating the PMU without the in-kernel GIC
      KVM: arm: Handle VCPU device attributes in guest.c
      KVM: arm/arm64: Move irq_is_ppi() to header file
      KVM: arm/arm64: Move timer IRQ default init to arch_timer.c
      KVM: arm/arm64: Allow setting the timer IRQ numbers from userspace
      KVM: arm/arm64: Introduce an allocator for in-kernel irq lines
      KVM: arm/arm64: Check if irq lines to the GIC are already used
      KVM: arm/arm64: Disallow userspace control of in-kernel IRQ lines
      KVM: arm/arm64: Don't assume initialized vgic when setting PMU IRQ

David Daney (2):
      arm64: Add MIDR values for Cavium cn83XX SoCs
      arm64: Add workaround for Cavium Thunder erratum 30115

Hu Huajun (1):
      KVM: ARM64: fix phy counter access failure in guest.

James Morse (3):
      KVM: arm: Restore banked registers and physical timer access on hyp_panic()
      KVM: arm64: Restore host physical timer access on hyp_panic()
      KVM: arm/arm64: Signal SIGBUS when stage2 discovers hwpoison memory

Marc Zyngier (26):
      Merge branch 'kvmarm-master/master' into HEAD
      arm64: Add a facility to turn an ESR syndrome into a sysreg encoding
      KVM: arm/arm64: vgic-v3: Add accessors for the ICH_APxRn_EL2 registers
      KVM: arm64: Make kvm_condition_valid32() accessible from EL2
      KVM: arm64: vgic-v3: Add hook to handle guest GICv3 sysreg accesses at EL2
      KVM: arm64: vgic-v3: Add ICV_BPR1_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_IGRPEN1_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_IAR1_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_EOIR1_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_AP1Rn_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_HPPIR1_EL1 handler
      KVM: arm64: vgic-v3: Enable trapping of Group-1 system registers
      KVM: arm64: Enable GICv3 Group-1 sysreg trapping via command-line
      KVM: arm64: vgic-v3: Add ICV_BPR0_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_IGNREN0_EL1 handler
      KVM: arm64: vgic-v3: Add misc Group-0 handlers
      KVM: arm64: vgic-v3: Enable trapping of Group-0 system registers
      KVM: arm64: Enable GICv3 Group-0 sysreg trapping via command-line
      KVM: arm64: vgic-v3: Add ICV_DIR_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_RPR_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_CTLR_EL1 handler
      KVM: arm64: vgic-v3: Add ICV_PMR_EL1 handler
      KVM: arm64: Enable GICv3 common sysreg trapping via command-line
      KVM: arm64: vgic-v3: Log which GICv3 system registers are trapped
      KVM: arm64: Log an error if trapping a read-from-write-only GICv3 access
      KVM: arm64: Log an error if trapping a write-to-read-only GICv3 access

Mark Rutland (2):
      arm64/kvm: sysreg: fix typo'd SYS_ICC_IGRPEN*_EL1
      arm64/kvm: vgic: use SYS_DESC()

Radim Krčmář (1):
      KVM: add kvm_request_pending

Stefan Traby (1):
      arm64: Remove a redundancy in sysreg.h

 Documentation/admin-guide/kernel-parameters.txt |  12 +
 Documentation/arm64/silicon-errata.txt          |   1 +
 Documentation/virtual/kvm/devices/vcpu.txt      |  41 +-
 Documentation/virtual/kvm/vcpu-requests.rst     | 307 +++++++++
 arch/arm/include/asm/kvm_host.h                 |  28 +-
 arch/arm/include/uapi/asm/kvm.h                 |   8 +
 arch/arm/kvm/guest.c                            |  51 ++
 arch/arm/kvm/handle_exit.c                      |   1 +
 arch/arm/kvm/hyp/switch.c                       |   2 +
 arch/arm/kvm/reset.c                            |  16 +-
 arch/arm64/Kconfig                              |  11 +
 arch/arm64/include/asm/arch_gicv3.h             |   2 +-
 arch/arm64/include/asm/cpucaps.h                |   3 +-
 arch/arm64/include/asm/cputype.h                |   2 +
 arch/arm64/include/asm/esr.h                    |  24 +
 arch/arm64/include/asm/kvm_host.h               |   6 +-
 arch/arm64/include/asm/kvm_hyp.h                |   1 +
 arch/arm64/include/asm/sysreg.h                 |  23 +-
 arch/arm64/include/uapi/asm/kvm.h               |   3 +
 arch/arm64/kernel/cpu_errata.c                  |  21 +
 arch/arm64/kvm/guest.c                          |   9 +
 arch/arm64/kvm/handle_exit.c                    |   1 +
 arch/arm64/kvm/hyp/switch.c                     |  15 +
 arch/arm64/kvm/reset.c                          |  16 +-
 arch/arm64/kvm/sys_regs.c                       |  27 +-
 arch/arm64/kvm/vgic-sys-reg-v3.c                |  45 +-
 arch/mips/kvm/trap_emul.c                       |   2 +-
 arch/mips/kvm/vz.c                              |   2 +-
 arch/powerpc/include/asm/kvm_host.h             |   4 +-
 arch/powerpc/kvm/booke.c                        |   2 +-
 arch/powerpc/kvm/powerpc.c                      |   5 +-
 arch/s390/include/asm/kvm_host.h                |   6 +-
 arch/s390/kvm/kvm-s390.c                        |   2 +-
 arch/x86/include/asm/kvm_host.h                 |  47 +-
 arch/x86/kvm/x86.c                              |   4 +-
 include/kvm/arm_arch_timer.h                    |   8 +-
 include/kvm/arm_pmu.h                           |   6 +
 include/kvm/arm_vgic.h                          |  14 +-
 include/linux/irqchip/arm-gic-v3.h              |   6 +
 include/linux/kvm_host.h                        |  12 +
 virt/kvm/arm/aarch32.c                          |   2 +-
 virt/kvm/arm/arch_timer.c                       | 139 +++-
 virt/kvm/arm/arm.c                              |  82 ++-
 virt/kvm/arm/hyp/vgic-v3-sr.c                   | 823 +++++++++++++++++++++++-
 virt/kvm/arm/mmu.c                              |  23 +
 virt/kvm/arm/pmu.c                              | 117 ++--
 virt/kvm/arm/psci.c                             |   8 +-
 virt/kvm/arm/vgic/vgic-irqfd.c                  |   2 +-
 virt/kvm/arm/vgic/vgic-mmio-v2.c                |  24 +-
 virt/kvm/arm/vgic/vgic-mmio-v3.c                |  22 +-
 virt/kvm/arm/vgic/vgic-mmio.c                   |  68 +-
 virt/kvm/arm/vgic/vgic-mmio.h                   |  12 +-
 virt/kvm/arm/vgic/vgic-v3.c                     |  45 ++
 virt/kvm/arm/vgic/vgic.c                        |  68 +-
 54 files changed, 1945 insertions(+), 286 deletions(-)
 create mode 100644 Documentation/virtual/kvm/vcpu-requests.rst



More information about the linux-arm-kernel mailing list