From mboxrd@z Thu Jan 1 00:00:00 1970
From: Pavel Fedin
Subject: [PATCH v7 0/6] KVM: arm64: Implement API for vGICv3 live migration
Date: Mon, 07 Dec 2015 15:29:30 +0300
Message-ID:
Cc: Christoffer Dall ,
Marc Zyngier ,
Andre Przywara
To: kvmarm@lists.cs.columbia.edu, kvm@vger.kernel.org
Return-path:
Received: from mailout1.w1.samsung.com ([210.118.77.11]:25102 "EHLO
mailout1.w1.samsung.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
with ESMTP id S1754193AbbLGM3m (ORCPT );
Mon, 7 Dec 2015 07:29:42 -0500
Received: from eucpsbgm2.samsung.com (unknown [203.254.199.245])
by mailout1.w1.samsung.com
(Oracle Communications Messaging Server 7.0.5.31.0 64bit (built May 5 2014))
with ESMTP id <0NYZ0052GMPG1QB0@mailout1.w1.samsung.com> for
kvm@vger.kernel.org; Mon, 07 Dec 2015 12:29:40 +0000 (GMT)
Sender: kvm-owner@vger.kernel.org
List-ID:
This patchset adds necessary userspace API in order to support vGICv3 live
migration. GICv3 registers are accessed using device attribute ioctls,
similar to GICv2.
v6 => v7:
- Rebased on top of linux-next of 07.12.2015, thrown away unnecessary part
v5 => v6:
- Rebased on top of linux-next of 23.11.2015
- Use original API documentation patch, with minor changes only.
- Quit reusing KVM_DEV_ARM_VGIC_CPUID_MASK, do not touch vGICv2 API at all.
- Fixed some issues reported by the new checkpatch
v4 => v5:
- Adapted to new API by Peter Maydell, Marc Zyngier and Christoffer Dall.
Acked-by's on the documentation were dropped, just in case, because i
slightly adjusted it. Additionally, i merged all doc updates into one
patch.
v3 => v4:
- Split pure refactoring from anything else
- Documentation brought up to date
- Cleaned up 'mmio' structure usage in vgic_attr_regs_access(),
use call_range_handler() for 64-bit access handling
- Rebased on new linux-next
v2 => v3:
- KVM_DEV_ARM_VGIC_CPUID_MASK enlarged to 20 bits, allowing more than 256
CPUs.
- Bug fix: Correctly set mmio->private, necessary for redistributor access.
- Added accessors for ICC_AP0R and ICC_AP1R registers
- Rebased on new linux-next
v1 => v2:
- Do not use generic register get/set API for CPU interface, use only
device attributes.
- Introduce size specifier for distributor and redistributor register
accesses, do not assume size any more.
- Lots of refactor and reusable code extraction.
- Added forgotten documentation
Christoffer Dall (1):
KVM: arm/arm64: Add VGICv3 save/restore API documentation
Pavel Fedin (5):
KVM: arm/arm64: Move endianness conversion out of
vgic_attr_regs_access()
KVM: arm/arm64: Refactor vGIC attributes handling code
KVM: arm64: Implement vGICv3 distributor and redistributor access from
userspace
KVM: arm64: Introduce find_reg_by_id()
KVM: arm64: Implement vGICv3 CPU interface access
Documentation/virtual/kvm/devices/arm-vgic-v3.txt | 116 ++++++++
Documentation/virtual/kvm/devices/arm-vgic.txt | 21 +-
arch/arm64/include/uapi/asm/kvm.h | 15 +-
arch/arm64/kvm/sys_regs.c | 22 +-
arch/arm64/kvm/sys_regs.h | 4 +
arch/arm64/mm/mmap.c | 2 +-
include/linux/irqchip/arm-gic-v3.h | 19 +-
virt/kvm/arm/vgic-v2-emul.c | 124 ++------
virt/kvm/arm/vgic-v3-emul.c | 334 +++++++++++++++++++++-
virt/kvm/arm/vgic.c | 57 ++++
virt/kvm/arm/vgic.h | 3 +
11 files changed, 577 insertions(+), 140 deletions(-)
create mode 100644 Documentation/virtual/kvm/devices/arm-vgic-v3.txt
--
2.4.4