Implement support to save/restore the ARM KVM VGIC state from the kernel. The basic appraoch is to transfer state from the in-kernel VGIC to the emulated arm-gic state representation and let the standard QEMU vmstate save/restore handle saving the arm-gic state. Restore works by reversing the process. The first patches adds missing features and fixes issues with the arm-gic implementation in qemu in preparation for the actual save/restore logic. The patches depend on the device control patch series sent out earlier, which can also be found here: git://git.linaro.org/people/cdall/qemu-arm.git migration/device-ctrl-v3 The whole patch series based on top of the above can be found here: git://git.linaro.org/people/cdall/qemu-arm.git migration/vgic-v4 Changes [v3 -> v4]: - Changes are described in the individual patches - Some re-ordering of patches: the rename of trigger to edge_trigger is now the first patch because it makes subsequent patches easier to read - All the changes related to handling the pending state are now combined in patch 3. - Generally tried to address review comments from v3 Changes [v2 -> v3]: - Changes are described in the individual patches - New patch that renames GIC_..._TRIGGER to GIC_..._EDGE_TRIGGER - New patch to keep track of software writing to SPENDR and CPENDR registers. - New patch that fixes not clearing the pending state for an asserted level-triggered interrupt on ACK - Separate patch for the GICC_APRn state Changes [v1 -> v2]: - Changes are described in the individual patches - VMState additions has been split into a separate patch Christoffer Dall (8): arm_gic: Rename GIC_X_TRIGGER to GIC_X_EDGE_TRIGGER hw: arm_gic: Introduce gic_set_priority function arm_gic: Fix GIC pending behavior hw: arm_gic: Keep track of SGI sources arm_gic: Support setting/getting binary point reg vmstate: Add uint32 2D-array support arm_gic: Add GICC_APRn state to the GICState hw: arm_gic_kvm: Add KVM VGIC save/restore logic hw/intc/arm_gic.c | 186 +++++++++++++---- hw/intc/arm_gic_common.c | 17 +- hw/intc/arm_gic_kvm.c | 424 ++++++++++++++++++++++++++++++++++++++- hw/intc/gic_internal.h | 10 +- include/hw/intc/arm_gic_common.h | 29 ++- include/migration/vmstate.h | 6 + 6 files changed, 617 insertions(+), 55 deletions(-) -- 1.8.5 _______________________________________________ kvmarm mailing list kvmarm@xxxxxxxxxxxxxxxxxxxxx https://lists.cs.columbia.edu/cucslists/listinfo/kvmarm