All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v10 0/8] arm/arm64: vgic: Implement API for vGICv3 live migration
@ 2016-12-01  7:09 ` vijay.kilari at gmail.com
  0 siblings, 0 replies; 68+ messages in thread
From: vijay.kilari @ 2016-12-01  7:09 UTC (permalink / raw)
  To: marc.zyngier, christoffer.dall, peter.maydell
  Cc: kvmarm, linux-arm-kernel, Vijaya Kumar K

From: Vijaya Kumar K <Vijaya.Kumar@cavium.com>

This patchset adds API for saving and restoring
of VGICv3 registers to support live migration with new vgic feature.
This API definition is as per version of VGICv3 specification
Documentation/virtual/kvm/devices/arm-vgic-v3.txt

The patch 3 & 4 are picked from the Pavel's previous implementation.
http://www.spinics.net/lists/kvm/msg122040.html

NOTE: Only compilation tested for AArch32. No hardware to test.

v9 => v10:
 - Dropped support for AArch32 mode.
 - Fixed line level update
 - Updated documentation
 - Moved vgic-sys-reg-v3.c to arch/arm64/kvm/ and
   added vgic-v3-coproc.c to arch/arm/kvm for AArch32
 - Fixed nits

v8 => v9:
 - Rebased to kvmarm/next branch
 - Introduce support for save and restore of CPU interface
   registers for AArch32 mode (9,10 and 11 patches).
   Only compilation tested.
 - Fixed vmcr.ctlr format
 - Updated error code for invalid CPU REG value in Documentation
 - Updated commit messages and added comments required
 - Queued IRQ when irq_line is set.
 - Compatibility check on ICC_CTLR_EL1.SEIS and A3V

v7 => v8:
 - Rebased to 4.9-rc3
 - Fixed wrong parameter to VGIC_TO_MPIDR
v6 => v7:
 - Rename all patches heading from vgic-new to vgic
 - Moved caching of priority and ID bits from vgic global struct
   to vgic_cpu struct.

v5 => v6:
 - Collated all register definitions to single patch (4)
 - Introduce macro to convert userspace MPIDR format to MPIDR reg format
 - Check on ICC_CTLR_EL1.CBPR value is made while accessing ICC_BPR1_EL1
 - Cached ich_vtr_el2 and guests priority and ID bits
 - Check on number of priority and ID bits when ICC_CTRL_EL1 write is made
 - Check is made on SRE bit for ICC_SRE_EL1 write

v4 => v5:
 - ICC_CTLR_EL1 access is updated to reflect HW values
 - Updated ICC reg access mask and shift macros
 - Introduced patch 4 for VMCR changes
 - Other minor fixes.
v3 => v4:
 - Rebased to latest code base
 - Moved vgic_uaccess() from vgic-mmio-v2.c to vgic-mmio.c
 - Dropped macro REGISTER_DESC_WITH_BITS_PER_IRQ_SHARED_UACCESS
 - Dropped LE conversion for userspace access
 - Introduced vgic_uaccess_write_pending() for ISPENDR write
 - Change macro KVM_DEV_ARM_VGIC_V3_CPUID_MASK to KVM_DEV_ARM_VGIC_V3_MIDR_MASK
 - Refactored some code as common code.
 - Changed handing of ICC_* registers
 - Allowed ICC_SRE_EL1 read by userspace
 - Fixed KVM_DEV_ARM_VGIC_LINE_LEVEL_INFO_* macros

v2 => v3:
 - Implemented separate API for ISPENDR and ICPENDR to
   read soft_pending instead of pending for level triggerred interrupts
 - Implemented ioctl KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO to access line level
 - Rebased on top of Christoffer's patch set
   http://www.spinics.net/lists/kvm/msg136840.html

 NOTE: GICD_STATUSR and GICR_STATUSR are implemented as RAZ/WI.

v1 => v2:
 - The init sequence change patch is no more required.
   Fixed in patch 2 by using static vgic_io_dev regions structure instead
   of using dynamic allocation pointer.
 - Updated commit message of patch 4.
 - Dropped usage of union to manage 32-bit and 64-bit access in patch 1.
   Used local variable for 32-bit access.
 - Updated macro __ARM64_SYS_REG and ARM64_SYS_REG in
   arch/arm64/include/uapi/asm/kvm.h as per qemu requirements.

Vijaya Kumar K (8):
  arm/arm64: vgic: Implement support for userspace access
  arm/arm64: vgic: Add distributor and redistributor access
  arm/arm64: vgic: Introduce find_reg_by_id()
  irqchip/gic-v3: Add missing system register definitions
  arm/arm64: vgic: Introduce VENG0 and VENG1 fields to vmcr struct
  arm/arm64: vgic: Implement VGICv3 CPU interface access
  arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl
  arm/arm64: Documentation: Update arm-vgic-v3.txt

 Documentation/virtual/kvm/devices/arm-vgic-v3.txt |   9 +-
 arch/arm/include/uapi/asm/kvm.h                   |  13 +
 arch/arm/kvm/Makefile                             |   4 +-
 arch/arm/kvm/vgic-v3-coproc.c                     |  35 +++
 arch/arm64/include/uapi/asm/kvm.h                 |  13 +
 arch/arm64/kvm/Makefile                           |   3 +-
 arch/arm64/kvm/sys_regs.c                         |  22 +-
 arch/arm64/kvm/sys_regs.h                         |   4 +
 arch/arm64/kvm/vgic-sys-reg-v3.c                  | 338 ++++++++++++++++++++++
 include/kvm/arm_vgic.h                            |   9 +
 include/linux/irqchip/arm-gic-v3.h                |  45 ++-
 virt/kvm/arm/vgic/vgic-kvm-device.c               | 215 +++++++++++++-
 virt/kvm/arm/vgic/vgic-mmio-v2.c                  |  57 +---
 virt/kvm/arm/vgic/vgic-mmio-v3.c                  | 204 +++++++++++--
 virt/kvm/arm/vgic/vgic-mmio.c                     | 162 ++++++++++-
 virt/kvm/arm/vgic/vgic-mmio.h                     |  28 ++
 virt/kvm/arm/vgic/vgic-v3.c                       |  28 +-
 virt/kvm/arm/vgic/vgic.h                          |  60 +++-
 18 files changed, 1144 insertions(+), 105 deletions(-)
 create mode 100644 arch/arm/kvm/vgic-v3-coproc.c
 create mode 100644 arch/arm64/kvm/vgic-sys-reg-v3.c

-- 
1.9.1

^ permalink raw reply	[flat|nested] 68+ messages in thread

end of thread, other threads:[~2017-01-23 13:42 UTC | newest]

Thread overview: 68+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-12-01  7:09 [PATCH v10 0/8] arm/arm64: vgic: Implement API for vGICv3 live migration vijay.kilari
2016-12-01  7:09 ` vijay.kilari at gmail.com
2016-12-01  7:09 ` [PATCH v10 1/8] arm/arm64: vgic: Implement support for userspace access vijay.kilari
2016-12-01  7:09   ` vijay.kilari at gmail.com
2016-12-01  7:09 ` [PATCH v10 2/8] arm/arm64: vgic: Add distributor and redistributor access vijay.kilari
2016-12-01  7:09   ` vijay.kilari at gmail.com
2016-12-01  7:09 ` [PATCH v10 3/8] arm/arm64: vgic: Introduce find_reg_by_id() vijay.kilari
2016-12-01  7:09   ` vijay.kilari at gmail.com
2016-12-01  7:09 ` [PATCH v10 4/8] irqchip/gic-v3: Add missing system register definitions vijay.kilari
2016-12-01  7:09   ` vijay.kilari at gmail.com
2016-12-01  7:09 ` [PATCH v10 5/8] arm/arm64: vgic: Introduce VENG0 and VENG1 fields to vmcr struct vijay.kilari
2016-12-01  7:09   ` vijay.kilari at gmail.com
2016-12-01  7:09 ` [PATCH v10 6/8] arm/arm64: vgic: Implement VGICv3 CPU interface access vijay.kilari
2016-12-01  7:09   ` vijay.kilari at gmail.com
2016-12-16 12:25   ` Auger Eric
2016-12-16 12:25     ` Auger Eric
2016-12-19  9:47     ` Vijay Kilari
2016-12-19  9:47       ` Vijay Kilari
2016-12-19 10:20       ` Auger Eric
2016-12-19 10:20         ` Auger Eric
2017-01-20 19:26         ` Christoffer Dall
2017-01-20 19:26           ` Christoffer Dall
2016-12-19 17:05   ` Auger Eric
2016-12-19 17:05     ` Auger Eric
2017-01-20 19:27     ` Christoffer Dall
2017-01-20 19:27       ` Christoffer Dall
2017-01-20 19:27   ` Christoffer Dall
2017-01-20 19:27     ` Christoffer Dall
2016-12-01  7:09 ` [PATCH v10 7/8] arm/arm64: vgic: Implement KVM_DEV_ARM_VGIC_GRP_LEVEL_INFO ioctl vijay.kilari
2016-12-01  7:09   ` vijay.kilari at gmail.com
2016-12-16 12:07   ` Auger Eric
2016-12-16 12:07     ` Auger Eric
2016-12-16 12:44     ` Peter Maydell
2016-12-16 12:44       ` Peter Maydell
2017-01-20 19:54       ` Christoffer Dall
2017-01-20 19:54         ` Christoffer Dall
2017-01-20 19:53   ` Christoffer Dall
2017-01-20 19:53     ` Christoffer Dall
2017-01-23 10:16     ` Peter Maydell
2017-01-23 10:16       ` Peter Maydell
2017-01-23 11:06       ` Christoffer Dall
2017-01-23 11:06         ` Christoffer Dall
2017-01-23 11:41         ` Peter Maydell
2017-01-23 11:41           ` Peter Maydell
2017-01-23 13:42           ` Christoffer Dall
2017-01-23 13:42             ` Christoffer Dall
2016-12-01  7:09 ` [PATCH v10 8/8] arm/arm64: Documentation: Update arm-vgic-v3.txt vijay.kilari
2016-12-01  7:09   ` vijay.kilari at gmail.com
2016-12-16 12:18   ` Auger Eric
2016-12-16 12:18     ` Auger Eric
2017-01-20 19:57     ` Christoffer Dall
2017-01-20 19:57       ` Christoffer Dall
2017-01-23 10:52       ` Vijay Kilari
2017-01-23 10:52         ` Vijay Kilari
2017-01-23 11:20         ` Christoffer Dall
2017-01-23 11:20           ` Christoffer Dall
2017-01-23 11:33           ` Vijay Kilari
2017-01-23 11:33             ` Vijay Kilari
2017-01-23 11:43             ` Christoffer Dall
2017-01-23 11:43               ` Christoffer Dall
2017-01-19  2:13 ` [PATCH v10 0/8] arm/arm64: vgic: Implement API for vGICv3 live migration Shannon Zhao
2017-01-19  2:13   ` Shannon Zhao
2017-01-20 13:51   ` Christoffer Dall
2017-01-20 13:51     ` Christoffer Dall
2017-01-20 19:59 ` Christoffer Dall
2017-01-20 19:59   ` Christoffer Dall
2017-01-23 10:24   ` Vijay Kilari
2017-01-23 10:24     ` Vijay Kilari

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.