From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:57279) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuFl5-0007n6-9h for qemu-devel@nongnu.org; Sat, 21 Dec 2013 01:10:01 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VuFkz-0002Ju-E0 for qemu-devel@nongnu.org; Sat, 21 Dec 2013 01:09:55 -0500 Received: from mail-pb0-f47.google.com ([209.85.160.47]:57662) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VuFkz-0002Jc-7s for qemu-devel@nongnu.org; Sat, 21 Dec 2013 01:09:49 -0500 Received: by mail-pb0-f47.google.com with SMTP id um1so3430346pbc.6 for ; Fri, 20 Dec 2013 22:09:48 -0800 (PST) From: Christoffer Dall Date: Fri, 20 Dec 2013 22:09:31 -0800 Message-Id: <1387606179-22709-1-git-send-email-christoffer.dall@linaro.org> Subject: [Qemu-devel] [RFC PATCH v4 0/8] Support arm-gic-kvm save/restore List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: kvmarm@lists.cs.columbia.edu, Christoffer Dall , patches@linaro.org 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