This is my alternative to Ashok's vGICv3 patch (https://lists.gnu.org/archive/html/qemu-devel/2015-05/msg03021.html), which i am currently working on. It addresses vGIC capability verification issue (kvm_irqchip_create() / kvm_arch_irqchip_create()), as well as offers better code structure (v3 code separated from v2). This patchset applies on top of this: https://lists.gnu.org/archive/html/qemu-devel/2015-05/msg00943.html. Note that GIC type selection still relies on machine name (virt-v3 vs virt), and not on machine option. Since libvirt has recently introduced support for extra options, i have absolutely nothing against Ashok's approach. I just did not change this yet because it would affect my testing environment. The aim of this RFC is to focus on vGICv3 implementation and related changes. And yes, i agree that v2 and v3 now have some copypasted code, and this is TBD.
Pavel Fedin (4): Add virt-v3 machine that uses GIC-500 Set kernel_irqchip_type for other ARM boards which use GIC First bits of vGICv3 support: Initial implementation of vGICv3. hw/arm/exynos4_boards.c | 1 + hw/arm/realview.c | 1 + hw/arm/vexpress.c | 1 + hw/arm/virt.c | 148 ++++++++++++++++++++----- hw/intc/Makefile.objs | 1 + hw/intc/arm_gicv3_kvm.c | 283 ++++++++++++++++++++++++++++++++++++++++++++++++ include/hw/boards.h | 1 + include/sysemu/kvm.h | 3 +- kvm-all.c | 2 +- stubs/kvm.c | 2 +- target-arm/kvm.c | 8 +- 11 files changed, 419 insertions(+), 32 deletions(-) create mode 100644 hw/intc/arm_gicv3_kvm.c -- 1.9.5.msysgit.0