[PULL 00/37] KVM/ARM Changes for v4.12 - Round 2

Christoffer Dall cdall at linaro.org
Tue May 9 03:44:29 PDT 2017


Hi Paolo and Radim,

Here is a second round of KVM/ARM Changes for v4.12.  I only just put
these changes in kvmarm/next, but we've tested them pretty thoroughly.

I know it's late in the merge window, but if we can still get them into
v4.12 that would be good as the ITS save/restore impedes migration on
GICv3 ARMv8 server systems.

The changes include:
 - A fix related to the 32-bit idmap stub
 - A fix to the bitmask used to deode the operands of an AArch32 CP
   instruction
 - We have moved the files shared between arch/arm/kvm and
   arch/arm64/kvm to virt/kvm/arm
 - We add support for saving/restoring the virtual ITS state to
   userspace

The following changes since commit 1edb632133efb6226b6bef3e7d9fa8c7134ac4e2:

  ARM: KVM: Fix idmap stub entry when running Thumb-2 code (2017-04-20 20:17:57 +0200)

are available in the git repository at:

  git://git.kernel.org/pub/scm/linux/kernel/git/kvmarm/kvmarm.git tags/kvm-arm-for-v4.12-round2

for you to fetch changes up to a2b19e6e2d4bb662a64799541c144fd94f8fb024:

  KVM: arm/arm64: vgic-its: Cleanup after failed ITT restore (2017-05-09 12:19:46 +0200)


Thanks,
-Christoffer


Christoffer Dall (11):
  KVM: arm/arm64: Move shared files to virt/kvm/arm
  KVM: arm/arm64: Clarification and relaxation to ITS save/restore ABI
  KVM: arm/arm64: vgic: Rename kvm_vgic_vcpu_init to
    kvm_vgic_vcpu_enable
  KVM: Add kvm_vcpu_get_idx to get vcpu index in kvm->vcpus
  KVM: arm/arm64: Refactor vgic_register_redist_iodevs
  KVM: arm/arm64: Make vgic_v3_check_base more broadly usable
  KVM: arm/arm64: Slightly rework kvm_vgic_addr
  KVM: arm/arm64: Register iodevs when setting redist base and creating
    VCPUs
  KVM: arm/arm64: Register ITS iodev when setting base address
  KVM: arm/arm64: Don't call map_resources when restoring ITS tables
  KVM: arm/arm64: vgic-its: Cleanup after failed ITT restore

Eric Auger (24):
  KVM: arm/arm64: Add ITS save/restore API documentation
  KVM: arm/arm64: Add GICV3 pending table save API documentation
  KVM: arm/arm64: vgic-its: rename itte into ite
  arm/arm64: vgic: turn vgic_find_mmio_region into public
  KVM: arm64: vgic-its: KVM_DEV_ARM_VGIC_GRP_ITS_REGS group
  KVM: arm/arm64: vgic: expose (un)lock_all_vcpus
  KVM: arm64: vgic-its: Implement vgic_its_has_attr_regs and
    attr_regs_access
  KVM: arm64: vgic-its: Implement vgic_mmio_uaccess_write_its_creadr
  KVM: arm64: vgic-its: Introduce migration ABI infrastructure
  KVM: arm64: vgic-its: Implement vgic_mmio_uaccess_write_its_iidr
  KVM: arm64: vgic-its: Interpret MAPD Size field and check related
    errors
  KVM: arm64: vgic-its: Interpret MAPD ITT_addr field
  KVM: arm64: vgic-its: Check the device id matches TYPER DEVBITS range
  KVM: arm64: vgic-v3: vgic_v3_lpi_sync_pending_status
  KVM: arm64: vgic-its: Read config and pending bit in add_lpi()
  KVM: arm64: vgic-its: KVM_DEV_ARM_ITS_SAVE/RESTORE_TABLES
  KVM: arm64: vgic-its: vgic_its_alloc_ite/device
  KVM: arm64: vgic-its: Add infrastructure for table lookup
  KVM: arm64: vgic-its: Collection table save/restore
  KVM: arm64: vgic-its: vgic_its_check_id returns the entry's GPA
  KVM: arm64: vgic-its: Device table save/restore
  KVM: arm64: vgic-its: ITT save and restore
  KVM: arm64: vgic-its: Fix pending table sync
  KVM: arm64: vgic-v3: KVM_DEV_ARM_VGIC_SAVE_PENDING_TABLES

Marc Zyngier (2):
  arm64: KVM: Fix decoding of Rt/Rt2 when trapping AArch32 CP accesses
  KVM: arm/arm64: Get rid of its->initialized field

 Documentation/virtual/kvm/devices/arm-vgic-its.txt |  121 ++
 Documentation/virtual/kvm/devices/arm-vgic-v3.txt  |    6 +
 arch/arm/include/uapi/asm/kvm.h                    |    6 +-
 arch/arm/kvm/Makefile                              |    7 +-
 arch/arm/kvm/trace.h                               |  247 ----
 arch/arm64/include/asm/kvm_emulate.h               |    6 +
 arch/arm64/include/uapi/asm/kvm.h                  |    6 +-
 arch/arm64/kvm/Makefile                            |    5 +-
 arch/arm64/kvm/sys_regs.c                          |    8 +-
 include/kvm/arm_vgic.h                             |    5 +-
 include/linux/irqchip/arm-gic-v3.h                 |   14 +
 include/linux/kvm_host.h                           |   11 +
 {arch/arm/kvm => virt/kvm/arm}/arm.c               |    2 +-
 {arch/arm/kvm => virt/kvm/arm}/mmio.c              |    0
 {arch/arm/kvm => virt/kvm/arm}/mmu.c               |    0
 {arch/arm/kvm => virt/kvm/arm}/perf.c              |    0
 {arch/arm/kvm => virt/kvm/arm}/psci.c              |    0
 virt/kvm/arm/trace.h                               |  246 +++-
 virt/kvm/arm/vgic/trace.h                          |   37 +
 virt/kvm/arm/vgic/vgic-init.c                      |   25 +-
 virt/kvm/arm/vgic/vgic-its.c                       | 1234 +++++++++++++++++---
 virt/kvm/arm/vgic/vgic-kvm-device.c                |   53 +-
 virt/kvm/arm/vgic/vgic-mmio-v3.c                   |  147 ++-
 virt/kvm/arm/vgic/vgic-mmio.c                      |   11 +-
 virt/kvm/arm/vgic/vgic-mmio.h                      |   14 +-
 virt/kvm/arm/vgic/vgic-v3.c                        |  128 +-
 virt/kvm/arm/vgic/vgic.c                           |    2 +-
 virt/kvm/arm/vgic/vgic.h                           |   33 +-
 28 files changed, 1837 insertions(+), 537 deletions(-)
 rename {arch/arm/kvm => virt/kvm/arm}/arm.c (99%)
 rename {arch/arm/kvm => virt/kvm/arm}/mmio.c (100%)
 rename {arch/arm/kvm => virt/kvm/arm}/mmu.c (100%)
 rename {arch/arm/kvm => virt/kvm/arm}/perf.c (100%)
 rename {arch/arm/kvm => virt/kvm/arm}/psci.c (100%)
 create mode 100644 virt/kvm/arm/vgic/trace.h

-- 
2.9.0




More information about the linux-arm-kernel mailing list