Re: [Qemu-devel] [RFC PATCH v2 16/49] target: save cpu state fields

2014-07-31 Thread Andreas Färber
Am 17.07.2014 13:03, schrieb Pavel Dovgalyuk:
 This patch adds interrupt fields to VMState for correct saving the CPU state.
 
 Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
 ---
  target-arm/machine.c  |5 -
  target-i386/machine.c |5 -
  2 files changed, 8 insertions(+), 2 deletions(-)
 
 diff --git a/target-arm/machine.c b/target-arm/machine.c
 index 3bcc7cc..29bfc10 100644
 --- a/target-arm/machine.c
 +++ b/target-arm/machine.c
 @@ -218,7 +218,7 @@ static int cpu_post_load(void *opaque, int version_id)
  
  const VMStateDescription vmstate_arm_cpu = {
  .name = cpu,
 -.version_id = 20,
 +.version_id = 21,
  .minimum_version_id = 20,
  .pre_save = cpu_pre_save,
  .post_load = cpu_post_load,
 @@ -259,6 +259,9 @@ const VMStateDescription vmstate_arm_cpu = {
  VMSTATE_UINT64(env.exception.vaddress, ARMCPU),
  VMSTATE_TIMER(gt_timer[GTIMER_PHYS], ARMCPU),
  VMSTATE_TIMER(gt_timer[GTIMER_VIRT], ARMCPU),
 +/* Fields required by replay */
 +VMSTATE_UINT32_V(parent_obj.interrupt_request, ARMCPU, 21),
 +VMSTATE_INT32_V(parent_obj.exception_index, ARMCPU, 21),
  VMSTATE_END_OF_LIST()
  },
  .subsections = (VMStateSubsection[]) {
 diff --git a/target-i386/machine.c b/target-i386/machine.c
 index 16d2f6a..9dfac33 100644
 --- a/target-i386/machine.c
 +++ b/target-i386/machine.c
 @@ -605,7 +605,7 @@ static const VMStateDescription vmstate_msr_hyperv_time = 
 {
  
  VMStateDescription vmstate_x86_cpu = {
  .name = cpu,
 -.version_id = 12,
 +.version_id = 13,
  .minimum_version_id = 3,
  .pre_save = cpu_pre_save,
  .post_load = cpu_post_load,
 @@ -702,6 +702,9 @@ VMStateDescription vmstate_x86_cpu = {
  VMSTATE_UINT64_V(env.xcr0, X86CPU, 12),
  VMSTATE_UINT64_V(env.xstate_bv, X86CPU, 12),
  VMSTATE_YMMH_REGS_VARS(env.ymmh_regs, X86CPU, CPU_NB_REGS, 12),
 +/* Fields required by replay */
 +VMSTATE_UINT32_V(parent_obj.interrupt_request, X86CPU, 13),
 +VMSTATE_INT32_V(parent_obj.exception_index, X86CPU, 13),
  VMSTATE_END_OF_LIST()
  /* The above list is not sorted /wrt version numbers, watch out! */
  },

Instead of messing with parent_obj here and above, can you please add
common CPUState stuff to vmstate_cpu_common in exec.c?

Regards,
Andreas

-- 
SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany
GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg



[Qemu-devel] [RFC PATCH v2 16/49] target: save cpu state fields

2014-07-17 Thread Pavel Dovgalyuk
This patch adds interrupt fields to VMState for correct saving the CPU state.

Signed-off-by: Pavel Dovgalyuk pavel.dovga...@ispras.ru
---
 target-arm/machine.c  |5 -
 target-i386/machine.c |5 -
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/target-arm/machine.c b/target-arm/machine.c
index 3bcc7cc..29bfc10 100644
--- a/target-arm/machine.c
+++ b/target-arm/machine.c
@@ -218,7 +218,7 @@ static int cpu_post_load(void *opaque, int version_id)
 
 const VMStateDescription vmstate_arm_cpu = {
 .name = cpu,
-.version_id = 20,
+.version_id = 21,
 .minimum_version_id = 20,
 .pre_save = cpu_pre_save,
 .post_load = cpu_post_load,
@@ -259,6 +259,9 @@ const VMStateDescription vmstate_arm_cpu = {
 VMSTATE_UINT64(env.exception.vaddress, ARMCPU),
 VMSTATE_TIMER(gt_timer[GTIMER_PHYS], ARMCPU),
 VMSTATE_TIMER(gt_timer[GTIMER_VIRT], ARMCPU),
+/* Fields required by replay */
+VMSTATE_UINT32_V(parent_obj.interrupt_request, ARMCPU, 21),
+VMSTATE_INT32_V(parent_obj.exception_index, ARMCPU, 21),
 VMSTATE_END_OF_LIST()
 },
 .subsections = (VMStateSubsection[]) {
diff --git a/target-i386/machine.c b/target-i386/machine.c
index 16d2f6a..9dfac33 100644
--- a/target-i386/machine.c
+++ b/target-i386/machine.c
@@ -605,7 +605,7 @@ static const VMStateDescription vmstate_msr_hyperv_time = {
 
 VMStateDescription vmstate_x86_cpu = {
 .name = cpu,
-.version_id = 12,
+.version_id = 13,
 .minimum_version_id = 3,
 .pre_save = cpu_pre_save,
 .post_load = cpu_post_load,
@@ -702,6 +702,9 @@ VMStateDescription vmstate_x86_cpu = {
 VMSTATE_UINT64_V(env.xcr0, X86CPU, 12),
 VMSTATE_UINT64_V(env.xstate_bv, X86CPU, 12),
 VMSTATE_YMMH_REGS_VARS(env.ymmh_regs, X86CPU, CPU_NB_REGS, 12),
+/* Fields required by replay */
+VMSTATE_UINT32_V(parent_obj.interrupt_request, X86CPU, 13),
+VMSTATE_INT32_V(parent_obj.exception_index, X86CPU, 13),
 VMSTATE_END_OF_LIST()
 /* The above list is not sorted /wrt version numbers, watch out! */
 },