[Qemu-devel] [PATCH 01/35] vmstate: Simplify test for CPU_SAVE_VERSION

2012-05-04 Thread Juan Quintela
Some cpu's definitions define CPU_SAVE_VERSION, others not, but they have
defined cpu_save/load.

Signed-off-by: Juan Quintela 
---
 exec.c |6 --
 1 files changed, 4 insertions(+), 2 deletions(-)

diff --git a/exec.c b/exec.c
index 0607c9b..cba333f 100644
--- a/exec.c
+++ b/exec.c
@@ -650,7 +650,7 @@ void cpu_exec_init_all(void)
 #endif
 }

-#if defined(CPU_SAVE_VERSION) && !defined(CONFIG_USER_ONLY)
+#if !defined(CONFIG_USER_ONLY)

 static int cpu_common_post_load(void *opaque, int version_id)
 {
@@ -717,11 +717,13 @@ void cpu_exec_init(CPUArchState *env)
 #if defined(CONFIG_USER_ONLY)
 cpu_list_unlock();
 #endif
-#if defined(CPU_SAVE_VERSION) && !defined(CONFIG_USER_ONLY)
+#if !defined(CONFIG_USER_ONLY)
 vmstate_register(NULL, cpu_index, &vmstate_cpu_common, env);
+#if defined(CPU_SAVE_VERSION)
 register_savevm(NULL, "cpu", cpu_index, CPU_SAVE_VERSION,
 cpu_save, cpu_load, env);
 #endif
+#endif
 }

 /* Allocate a new translation block. Flush the translation buffer if
-- 
1.7.7.6




Re: [Qemu-devel] [PATCH 01/35] vmstate: Simplify test for CPU_SAVE_VERSION

2012-05-04 Thread Andreas Färber
Am 04.05.2012 12:54, schrieb Juan Quintela:
> Some cpu's definitions define CPU_SAVE_VERSION, others not, but they have

"CPUs' definitions"?

> defined cpu_save/load.

This commit message sounds wrong. Use of cpu_save/load is still coupled
to CPU_SAVE_VERSION AFAICS.

What really changes is that vmstate_cpu_common is now registered whether
or not the target supports loading/saving the target-specific parts,
isn't it? Is that really useful? Either way, the commit message should
be updated.

Andreas

> 
> Signed-off-by: Juan Quintela 
> ---
>  exec.c |6 --
>  1 files changed, 4 insertions(+), 2 deletions(-)
> 
> diff --git a/exec.c b/exec.c
> index 0607c9b..cba333f 100644
> --- a/exec.c
> +++ b/exec.c
> @@ -650,7 +650,7 @@ void cpu_exec_init_all(void)
>  #endif
>  }
> 
> -#if defined(CPU_SAVE_VERSION) && !defined(CONFIG_USER_ONLY)
> +#if !defined(CONFIG_USER_ONLY)
> 
>  static int cpu_common_post_load(void *opaque, int version_id)
>  {
> @@ -717,11 +717,13 @@ void cpu_exec_init(CPUArchState *env)
>  #if defined(CONFIG_USER_ONLY)
>  cpu_list_unlock();
>  #endif
> -#if defined(CPU_SAVE_VERSION) && !defined(CONFIG_USER_ONLY)
> +#if !defined(CONFIG_USER_ONLY)
>  vmstate_register(NULL, cpu_index, &vmstate_cpu_common, env);
> +#if defined(CPU_SAVE_VERSION)
>  register_savevm(NULL, "cpu", cpu_index, CPU_SAVE_VERSION,
>  cpu_save, cpu_load, env);
>  #endif
> +#endif
>  }
> 
>  /* Allocate a new translation block. Flush the translation buffer if

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



Re: [Qemu-devel] [PATCH 01/35] vmstate: Simplify test for CPU_SAVE_VERSION

2012-05-04 Thread Juan Quintela
Andreas Färber  wrote:
> Am 04.05.2012 12:54, schrieb Juan Quintela:
>> Some cpu's definitions define CPU_SAVE_VERSION, others not, but they have
>
> "CPUs' definitions"?
>
>> defined cpu_save/load.
>
> This commit message sounds wrong. Use of cpu_save/load is still coupled
> to CPU_SAVE_VERSION AFAICS.
>
> What really changes is that vmstate_cpu_common is now registered whether
> or not the target supports loading/saving the target-specific parts,
> isn't it? Is that really useful? Either way, the commit message should
> be updated.

For the cpus that weren't using CPU_SAVE_VERSION, we now register the
system as unmigratable, so this don't matter.  For the cpus that support
migration, it was always sent.  Code now is trivial to understand:

#if !defined(CONFIG_USER_ONLY)
vmstate_register(NULL, cpu_index, &vmstate_cpu_common, env);
vmstate_register(NULL, cpu_index, &vmstate_cpu, env);
#endif

Befor it was a maze of ifdefs.  No change of behaviour with what we had
before.  For either cpus that had[not]  support for migration or not.



Re: [Qemu-devel] [PATCH 01/35] vmstate: Simplify test for CPU_SAVE_VERSION

2012-05-04 Thread Andreas Färber
Am 04.05.2012 13:59, schrieb Juan Quintela:
> Andreas Färber  wrote:
>> Am 04.05.2012 12:54, schrieb Juan Quintela:
>>> Some cpu's definitions define CPU_SAVE_VERSION, others not, but they have
>>
>> "CPUs' definitions"?
>>
>>> defined cpu_save/load.
>>
>> This commit message sounds wrong. Use of cpu_save/load is still coupled
>> to CPU_SAVE_VERSION AFAICS.
>>
>> What really changes is that vmstate_cpu_common is now registered whether
>> or not the target supports loading/saving the target-specific parts,
>> isn't it? Is that really useful? Either way, the commit message should
>> be updated.
> 
> For the cpus that weren't using CPU_SAVE_VERSION, we now register the
> system as unmigratable, so this don't matter.  For the cpus that support
> migration, it was always sent.  Code now is trivial to understand:
> 
> #if !defined(CONFIG_USER_ONLY)
> vmstate_register(NULL, cpu_index, &vmstate_cpu_common, env);
> vmstate_register(NULL, cpu_index, &vmstate_cpu, env);
> #endif

No, that's not what's in the patch.

> Befor it was a maze of ifdefs.  No change of behaviour with what we had
> before.  For either cpus that had[not]  support for migration or not.

Please look at the patch again - it turns the one-ifdef block into two
nested ifdefs. So therefore it is my understanding that - in lack of
unmigratable VMSDs this patch - possibly temporarily, not all patches
have arrived yet - changes the migration format in an odd way. In that
case we should consider reordering the patch within the series.

Andreas

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