Patchwork Fix migration uint8 arrys handled

login
register
mail settings
Submitter Juan Quintela
Date March 15, 2011, 2:53 p.m.
Message ID <1300200805-13928-1-git-send-email-quintela@redhat.com>
Download mbox | patch
Permalink /patch/86994/
State New
Headers show

Comments

Juan Quintela - March 15, 2011, 2:53 p.m.
commit 82fa39b75181b730d6d4d09f443bd26bcfcd045c

only contains half of the fix.  It forgots the save state fix for
UINT8 indexes.

Anthony, please apply, without this migration using hpet is broken.
(only current user).

Signed-off-by: Juan Quintela <quintela@redhat.com>
---
 savevm.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
Yoshiaki Tamura - March 18, 2011, 12:41 p.m.
2011/3/15 Juan Quintela <quintela@redhat.com>:
> commit 82fa39b75181b730d6d4d09f443bd26bcfcd045c
>
> only contains half of the fix.  It forgots the save state fix for
> UINT8 indexes.
>
> Anthony, please apply, without this migration using hpet is broken.
> (only current user).
>
> Signed-off-by: Juan Quintela <quintela@redhat.com>
> ---
>  savevm.c |    2 ++
>  1 files changed, 2 insertions(+), 0 deletions(-)
>
> diff --git a/savevm.c b/savevm.c
> index 60d2f2a..67459a7 100644
> --- a/savevm.c
> +++ b/savevm.c
> @@ -1395,6 +1395,8 @@ void vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd,
>                 n_elems = *(int32_t *)(opaque+field->num_offset);
>             } else if (field->flags & VMS_VARRAY_UINT16) {
>                 n_elems = *(uint16_t *)(opaque+field->num_offset);
> +            } else if (field->flags & VMS_VARRAY_UINT8) {
> +                n_elems = *(uint8_t *)(opaque+field->num_offset);
>             }
>             if (field->flags & VMS_POINTER) {
>                 base_addr = *(void **)base_addr + field->start;
> --
> 1.7.4

Acked-by: Yoshiaki Tamura <tamura.yoshiaki@lab.ntt.co.jp>
Stefan Berger - March 22, 2011, 12:25 a.m.
On 03/15/2011 10:53 AM, Juan Quintela wrote:
> commit 82fa39b75181b730d6d4d09f443bd26bcfcd045c
>
> only contains half of the fix.  It forgots the save state fix for
> UINT8 indexes.
>
> Anthony, please apply, without this migration using hpet is broken.
> (only current user).
I have just been bisecting the code (from the tip) due to suspend/resume 
problems and it looks like commit 82fa39b7 is introducing the 
suspend/resume problem I am seeing (frozen screen).

    Stefan
Anthony Liguori - March 22, 2011, 1:46 a.m.
On 03/21/2011 07:25 PM, Stefan Berger wrote:
> On 03/15/2011 10:53 AM, Juan Quintela wrote:
>> commit 82fa39b75181b730d6d4d09f443bd26bcfcd045c
>>
>> only contains half of the fix.  It forgots the save state fix for
>> UINT8 indexes.
>>
>> Anthony, please apply, without this migration using hpet is broken.
>> (only current user).
> I have just been bisecting the code (from the tip) due to 
> suspend/resume problems and it looks like commit 82fa39b7 is 
> introducing the suspend/resume problem I am seeing (frozen screen).

It's in tip now.

Regards,

Anthony Liguori

>    Stefan
>
Avi Kivity - March 22, 2011, 9:28 a.m.
On 03/22/2011 03:46 AM, Anthony Liguori wrote:
> On 03/21/2011 07:25 PM, Stefan Berger wrote:
>> On 03/15/2011 10:53 AM, Juan Quintela wrote:
>>> commit 82fa39b75181b730d6d4d09f443bd26bcfcd045c
>>>
>>> only contains half of the fix.  It forgots the save state fix for
>>> UINT8 indexes.
>>>
>>> Anthony, please apply, without this migration using hpet is broken.
>>> (only current user).
>> I have just been bisecting the code (from the tip) due to 
>> suspend/resume problems and it looks like commit 82fa39b7 is 
>> introducing the suspend/resume problem I am seeing (frozen screen).
>
> It's in tip now.

Great, spent some lovely time bisecting and fixing it as well.
Stefan Berger - March 22, 2011, 10:23 a.m.
On 03/22/2011 05:28 AM, Avi Kivity wrote:
> On 03/22/2011 03:46 AM, Anthony Liguori wrote:
>> On 03/21/2011 07:25 PM, Stefan Berger wrote:
>>> On 03/15/2011 10:53 AM, Juan Quintela wrote:
>>>> commit 82fa39b75181b730d6d4d09f443bd26bcfcd045c
>>>>
>>>> only contains half of the fix.  It forgots the save state fix for
>>>> UINT8 indexes.
>>>>
>>>> Anthony, please apply, without this migration using hpet is broken.
>>>> (only current user).
>>> I have just been bisecting the code (from the tip) due to 
>>> suspend/resume problems and it looks like commit 82fa39b7 is 
>>> introducing the suspend/resume problem I am seeing (frozen screen).
>>
>> It's in tip now.
>
> Great, spent some lovely time bisecting and fixing it as well.
>
It doesn't work better now than it did before... Trying a suspend/resume 
while in grub leaves me with a black screen upon resume...

    Stefan
Avi Kivity - March 22, 2011, 10:40 a.m.
On 03/22/2011 12:23 PM, Stefan Berger wrote:
> On 03/22/2011 05:28 AM, Avi Kivity wrote:
>> On 03/22/2011 03:46 AM, Anthony Liguori wrote:
>>> On 03/21/2011 07:25 PM, Stefan Berger wrote:
>>>> On 03/15/2011 10:53 AM, Juan Quintela wrote:
>>>>> commit 82fa39b75181b730d6d4d09f443bd26bcfcd045c
>>>>>
>>>>> only contains half of the fix.  It forgots the save state fix for
>>>>> UINT8 indexes.
>>>>>
>>>>> Anthony, please apply, without this migration using hpet is broken.
>>>>> (only current user).
>>>> I have just been bisecting the code (from the tip) due to 
>>>> suspend/resume problems and it looks like commit 82fa39b7 is 
>>>> introducing the suspend/resume problem I am seeing (frozen screen).
>>>
>>> It's in tip now.
>>
>> Great, spent some lovely time bisecting and fixing it as well.
>>
> It doesn't work better now than it did before... Trying a 
> suspend/resume while in grub leaves me with a black screen upon resume...

Well, it fixed it for me (autotest migration tests).

Do you mean that 82fa39b7^ works but b784421ce4c doesn't?  What about 
b784421ce4c^ with 82fa39b7 reverted?  That will rule out some other bug.

Patch

diff --git a/savevm.c b/savevm.c
index 60d2f2a..67459a7 100644
--- a/savevm.c
+++ b/savevm.c
@@ -1395,6 +1395,8 @@  void vmstate_save_state(QEMUFile *f, const VMStateDescription *vmsd,
                 n_elems = *(int32_t *)(opaque+field->num_offset);
             } else if (field->flags & VMS_VARRAY_UINT16) {
                 n_elems = *(uint16_t *)(opaque+field->num_offset);
+            } else if (field->flags & VMS_VARRAY_UINT8) {
+                n_elems = *(uint8_t *)(opaque+field->num_offset);
             }
             if (field->flags & VMS_POINTER) {
                 base_addr = *(void **)base_addr + field->start;