ACK: [PULL][SRU Zesty] ARM GICv3 ITS save/restore

Kleber Souza kleber.souza at canonical.com
Wed Nov 15 11:20:13 UTC 2017


On 11/10/17 18:49, dann frazier wrote:
> BugLink: https://bugs.launchpad.net/bugs/1710019
> 
> This series is necessary to enable KVM live migration for modern arm64
> servers. All patches are clean cherry picks except for one trivial
> offset fix (noted in the commit). This feature landed upstream back in
> 4.12, but we've been waiting on a bug fix that just landed before
> submitting (the last patch).
> 
> Patches are needed for zesty's QEMU as well, which are under review by
> the server team (see the bug) - however, even without the zesty QEMU
> update, these changes are useful for those deploying OpenStack w/ the
> hwe kernel + cloud archive.
> 
> Tested on a Cavium ThunderX CRB and a Qualcomm Centriq board.
> 
> The following changes since commit fe5e5001b417612723b174cbe3d1e9d5755b204f:
> 
>   UBUNTU: Ubuntu-4.10.0-40.44 (2017-11-09 15:28:44 +0100)
> 
> are available in the Git repository at:
> 
>   git://git.launchpad.net/~dannf/ubuntu/+source/linux/+git/linux lp1710019-z
> 
> for you to fetch changes up to 082d90155b3d8da957741c01a7c5ea1f2398fce4:
> 
>   KVM: arm/arm64: vgic-its: Fix return value for device table restore
> (2017-11-10 10:29:06 -0700)
> 
> ----------------------------------------------------------------
> Christoffer Dall (1):
>       KVM: arm/arm64: Remove struct vgic_irq pending field
> 
> 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 (1):
>       KVM: arm/arm64: vgic-v3: Don't pretend to support IRQ/FIQ bypass
> 
> Vijaya Kumar K (7):
>       KVM: arm/arm64: vgic: Implement support for userspace access
>       KVM: arm/arm64: vgic: Add distributor and redistributor access
>       KVM: arm/arm64: vgic: Introduce find_reg_by_id()
>       KVM: arm/arm64: vgic: Introduce VENG0 and VENG1 fields to vmcr struct
>       KVM: arm/arm64: vgic: Implement VGICv3 CPU interface access
>       KVM: arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl
>       KVM: arm/arm64: Documentation: Update arm-vgic-v3.txt
> 
> wanghaibin (1):
>       KVM: arm/arm64: vgic-its: Fix return value for device table restore
> 
>  Documentation/virtual/kvm/devices/arm-vgic-its.txt |  120 ++
>  Documentation/virtual/kvm/devices/arm-vgic-v3.txt  |   17 +-
>  arch/arm/include/uapi/asm/kvm.h                    |   19 +-
>  arch/arm/kvm/Makefile                              |    4 +-
>  arch/arm/kvm/vgic-v3-coproc.c                      |   35 +
>  arch/arm64/include/uapi/asm/kvm.h                  |   19 +-
>  arch/arm64/kvm/Makefile                            |    3 +-
>  arch/arm64/kvm/sys_regs.c                          |   27 +-
>  arch/arm64/kvm/sys_regs.h                          |    4 +
>  arch/arm64/kvm/vgic-sys-reg-v3.c                   |  346 ++++++
>  include/kvm/arm_vgic.h                             |   16 +-
>  include/linux/irqchip/arm-gic-v3.h                 |   18 +-
>  virt/kvm/arm/vgic/vgic-its.c                       | 1176 +++++++++++++++++---
>  virt/kvm/arm/vgic/vgic-kvm-device.c                |  255 ++++-
>  virt/kvm/arm/vgic/vgic-mmio-v2.c                   |   87 +-
>  virt/kvm/arm/vgic/vgic-mmio-v3.c                   |  203 +++-
>  virt/kvm/arm/vgic/vgic-mmio.c                      |  178 ++-
>  virt/kvm/arm/vgic/vgic-mmio.h                      |   34 +
>  virt/kvm/arm/vgic/vgic-v2.c                        |   12 +-
>  virt/kvm/arm/vgic/vgic-v3.c                        |  140 ++-
>  virt/kvm/arm/vgic/vgic.c                           |   16 +-
>  virt/kvm/arm/vgic/vgic.h                           |  108 +-
>  22 files changed, 2531 insertions(+), 306 deletions(-)
>  create mode 100644 arch/arm/kvm/vgic-v3-coproc.c
>  create mode 100644 arch/arm64/kvm/vgic-sys-reg-v3.c
> 

This is a huge pull request so I won't pretend I looked close at every
commit. But the changes are limited to arm and mostly to kvm/arm, clean
cherry-picks and with positive test results, so the regression potential
seems low.

Acked-by: Kleber Sacilotto de Souza <kleber.souza at canonical.com>




More information about the kernel-team mailing list