All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH] audio: Never send migration section
@ 2021-08-09 17:09 Dr. David Alan Gilbert (git)
  2021-08-09 17:12 ` Daniel P. Berrangé
                   ` (2 more replies)
  0 siblings, 3 replies; 6+ messages in thread
From: Dr. David Alan Gilbert (git) @ 2021-08-09 17:09 UTC (permalink / raw)
  To: qemu-devel, kraxel, berrange; +Cc: quintela

From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>

The audio migration vmstate is empty, and always has been; we can't
just remove it though because an old qemu might send it us.
Changes with -audiodev now mean it's sometimes created when it didn't
used to be, and can confuse migration to old qemu.

Change it so that vmstate_audio is never sent; if it's received it
should still be accepted, and old qemu's shouldn't be too upset if it's
missing.

Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
---
 audio/audio.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/audio/audio.c b/audio/audio.c
index 59453ef856..54a153c0ef 100644
--- a/audio/audio.c
+++ b/audio/audio.c
@@ -1622,10 +1622,20 @@ void audio_cleanup(void)
     }
 }
 
+static bool vmstate_audio_needed(void *opaque)
+{
+    /*
+     * Never needed, this vmstate only exists in case
+     * an old qemu sends it to us.
+     */
+    return false;
+}
+
 static const VMStateDescription vmstate_audio = {
     .name = "audio",
     .version_id = 1,
     .minimum_version_id = 1,
+    .needed = vmstate_audio_needed,
     .fields = (VMStateField[]) {
         VMSTATE_END_OF_LIST()
     }
-- 
2.31.1



^ permalink raw reply related	[flat|nested] 6+ messages in thread

* Re: [PATCH] audio: Never send migration section
  2021-08-09 17:09 [PATCH] audio: Never send migration section Dr. David Alan Gilbert (git)
@ 2021-08-09 17:12 ` Daniel P. Berrangé
  2021-08-10  4:58   ` Philippe Mathieu-Daudé
  2021-08-10  8:56 ` Gerd Hoffmann
  2021-08-10 12:02 ` Juan Quintela
  2 siblings, 1 reply; 6+ messages in thread
From: Daniel P. Berrangé @ 2021-08-09 17:12 UTC (permalink / raw)
  To: Dr. David Alan Gilbert (git); +Cc: quintela, qemu-devel, kraxel

On Mon, Aug 09, 2021 at 06:09:56PM +0100, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> The audio migration vmstate is empty, and always has been; we can't
> just remove it though because an old qemu might send it us.
> Changes with -audiodev now mean it's sometimes created when it didn't
> used to be, and can confuse migration to old qemu.
> 
> Change it so that vmstate_audio is never sent; if it's received it
> should still be accepted, and old qemu's shouldn't be too upset if it's
> missing.
> 
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> ---
>  audio/audio.c | 10 ++++++++++
>  1 file changed, 10 insertions(+)

Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
Tested-by: Daniel P. Berrangé <berrange@redhat.com>


For testing I have a VM with -audiodev, but *WITHOUT* any sound
frontend devices. Live migrating to a QEMU using QEMU_AUDIO_DRV
would previously fail. With this applied it now works, showing
that we dont uncessarily send this.

I also tested migration to a QEMU with -audiodev, but without
this patch, and that still works as before, showing that QEMU
is happy if this section is not sent.

> 
> diff --git a/audio/audio.c b/audio/audio.c
> index 59453ef856..54a153c0ef 100644
> --- a/audio/audio.c
> +++ b/audio/audio.c
> @@ -1622,10 +1622,20 @@ void audio_cleanup(void)
>      }
>  }
>  
> +static bool vmstate_audio_needed(void *opaque)
> +{
> +    /*
> +     * Never needed, this vmstate only exists in case
> +     * an old qemu sends it to us.
> +     */
> +    return false;
> +}
> +
>  static const VMStateDescription vmstate_audio = {
>      .name = "audio",
>      .version_id = 1,
>      .minimum_version_id = 1,
> +    .needed = vmstate_audio_needed,
>      .fields = (VMStateField[]) {
>          VMSTATE_END_OF_LIST()
>      }
> -- 
> 2.31.1
> 

Regards,
Daniel
-- 
|: https://berrange.com      -o-    https://www.flickr.com/photos/dberrange :|
|: https://libvirt.org         -o-            https://fstop138.berrange.com :|
|: https://entangle-photo.org    -o-    https://www.instagram.com/dberrange :|



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] audio: Never send migration section
  2021-08-09 17:12 ` Daniel P. Berrangé
@ 2021-08-10  4:58   ` Philippe Mathieu-Daudé
  2021-08-10 10:01     ` Dr. David Alan Gilbert
  0 siblings, 1 reply; 6+ messages in thread
From: Philippe Mathieu-Daudé @ 2021-08-10  4:58 UTC (permalink / raw)
  To: Daniel P. Berrangé, Dr. David Alan Gilbert (git)
  Cc: kraxel, qemu-devel, quintela

On 8/9/21 7:12 PM, Daniel P. Berrangé wrote:
> On Mon, Aug 09, 2021 at 06:09:56PM +0100, Dr. David Alan Gilbert (git) wrote:
>> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>>
>> The audio migration vmstate is empty, and always has been; we can't
>> just remove it though because an old qemu might send it us.
>> Changes with -audiodev now mean it's sometimes created when it didn't
>> used to be, and can confuse migration to old qemu.

Not a 6.1 regression but easy change for rc3 IMO.

>> Change it so that vmstate_audio is never sent; if it's received it
>> should still be accepted, and old qemu's shouldn't be too upset if it's
>> missing.

Worth Cc: stable@ maybe?

>> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
>> ---
>>  audio/audio.c | 10 ++++++++++
>>  1 file changed, 10 insertions(+)
> 
> Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> Tested-by: Daniel P. Berrangé <berrange@redhat.com>
> 
> 
> For testing I have a VM with -audiodev, but *WITHOUT* any sound
> frontend devices. Live migrating to a QEMU using QEMU_AUDIO_DRV
> would previously fail. With this applied it now works, showing
> that we dont uncessarily send this.
> 
> I also tested migration to a QEMU with -audiodev, but without
> this patch, and that still works as before, showing that QEMU
> is happy if this section is not sent.
> 
>>
>> diff --git a/audio/audio.c b/audio/audio.c
>> index 59453ef856..54a153c0ef 100644
>> --- a/audio/audio.c
>> +++ b/audio/audio.c
>> @@ -1622,10 +1622,20 @@ void audio_cleanup(void)
>>      }
>>  }
>>  
>> +static bool vmstate_audio_needed(void *opaque)
>> +{
>> +    /*
>> +     * Never needed, this vmstate only exists in case
>> +     * an old qemu sends it to us.
>> +     */
>> +    return false;
>> +}
>> +
>>  static const VMStateDescription vmstate_audio = {
>>      .name = "audio",
>>      .version_id = 1,
>>      .minimum_version_id = 1,
>> +    .needed = vmstate_audio_needed,
>>      .fields = (VMStateField[]) {
>>          VMSTATE_END_OF_LIST()
>>      }
>> -- 
>> 2.31.1
>>
> 
> Regards,
> Daniel
> 



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] audio: Never send migration section
  2021-08-09 17:09 [PATCH] audio: Never send migration section Dr. David Alan Gilbert (git)
  2021-08-09 17:12 ` Daniel P. Berrangé
@ 2021-08-10  8:56 ` Gerd Hoffmann
  2021-08-10 12:02 ` Juan Quintela
  2 siblings, 0 replies; 6+ messages in thread
From: Gerd Hoffmann @ 2021-08-10  8:56 UTC (permalink / raw)
  To: Dr. David Alan Gilbert (git); +Cc: berrange, qemu-devel, quintela

On Mon, Aug 09, 2021 at 06:09:56PM +0100, Dr. David Alan Gilbert (git) wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> 
> The audio migration vmstate is empty, and always has been; we can't
> just remove it though because an old qemu might send it us.
> Changes with -audiodev now mean it's sometimes created when it didn't
> used to be, and can confuse migration to old qemu.
> 
> Change it so that vmstate_audio is never sent; if it's received it
> should still be accepted, and old qemu's shouldn't be too upset if it's
> missing.
> 
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

Queued for 6.1

thanks,
  Gerd



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] audio: Never send migration section
  2021-08-10  4:58   ` Philippe Mathieu-Daudé
@ 2021-08-10 10:01     ` Dr. David Alan Gilbert
  0 siblings, 0 replies; 6+ messages in thread
From: Dr. David Alan Gilbert @ 2021-08-10 10:01 UTC (permalink / raw)
  To: Philippe Mathieu-Daudé, qemu-stable
  Cc: kraxel, Daniel P. Berrangé, qemu-devel, quintela

* Philippe Mathieu-Daudé (philmd@redhat.com) wrote:
> On 8/9/21 7:12 PM, Daniel P. Berrangé wrote:
> > On Mon, Aug 09, 2021 at 06:09:56PM +0100, Dr. David Alan Gilbert (git) wrote:
> >> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
> >>
> >> The audio migration vmstate is empty, and always has been; we can't
> >> just remove it though because an old qemu might send it us.
> >> Changes with -audiodev now mean it's sometimes created when it didn't
> >> used to be, and can confuse migration to old qemu.
> 
> Not a 6.1 regression but easy change for rc3 IMO.
> 
> >> Change it so that vmstate_audio is never sent; if it's received it
> >> should still be accepted, and old qemu's shouldn't be too upset if it's
> >> missing.
> 
> Worth Cc: stable@ maybe?

Hmm yes, cc'd this reply.

Dave

> >> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>
> >> ---
> >>  audio/audio.c | 10 ++++++++++
> >>  1 file changed, 10 insertions(+)
> > 
> > Reviewed-by: Daniel P. Berrangé <berrange@redhat.com>
> > Tested-by: Daniel P. Berrangé <berrange@redhat.com>
> > 
> > 
> > For testing I have a VM with -audiodev, but *WITHOUT* any sound
> > frontend devices. Live migrating to a QEMU using QEMU_AUDIO_DRV
> > would previously fail. With this applied it now works, showing
> > that we dont uncessarily send this.
> > 
> > I also tested migration to a QEMU with -audiodev, but without
> > this patch, and that still works as before, showing that QEMU
> > is happy if this section is not sent.
> > 
> >>
> >> diff --git a/audio/audio.c b/audio/audio.c
> >> index 59453ef856..54a153c0ef 100644
> >> --- a/audio/audio.c
> >> +++ b/audio/audio.c
> >> @@ -1622,10 +1622,20 @@ void audio_cleanup(void)
> >>      }
> >>  }
> >>  
> >> +static bool vmstate_audio_needed(void *opaque)
> >> +{
> >> +    /*
> >> +     * Never needed, this vmstate only exists in case
> >> +     * an old qemu sends it to us.
> >> +     */
> >> +    return false;
> >> +}
> >> +
> >>  static const VMStateDescription vmstate_audio = {
> >>      .name = "audio",
> >>      .version_id = 1,
> >>      .minimum_version_id = 1,
> >> +    .needed = vmstate_audio_needed,
> >>      .fields = (VMStateField[]) {
> >>          VMSTATE_END_OF_LIST()
> >>      }
> >> -- 
> >> 2.31.1
> >>
> > 
> > Regards,
> > Daniel
> > 
> 
-- 
Dr. David Alan Gilbert / dgilbert@redhat.com / Manchester, UK



^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [PATCH] audio: Never send migration section
  2021-08-09 17:09 [PATCH] audio: Never send migration section Dr. David Alan Gilbert (git)
  2021-08-09 17:12 ` Daniel P. Berrangé
  2021-08-10  8:56 ` Gerd Hoffmann
@ 2021-08-10 12:02 ` Juan Quintela
  2 siblings, 0 replies; 6+ messages in thread
From: Juan Quintela @ 2021-08-10 12:02 UTC (permalink / raw)
  To: Dr. David Alan Gilbert (git); +Cc: berrange, qemu-devel, kraxel

"Dr. David Alan Gilbert (git)" <dgilbert@redhat.com> wrote:
> From: "Dr. David Alan Gilbert" <dgilbert@redhat.com>
>
> The audio migration vmstate is empty, and always has been; we can't
> just remove it though because an old qemu might send it us.
> Changes with -audiodev now mean it's sometimes created when it didn't
> used to be, and can confuse migration to old qemu.
>
> Change it so that vmstate_audio is never sent; if it's received it
> should still be accepted, and old qemu's shouldn't be too upset if it's
> missing.
>
> Signed-off-by: Dr. David Alan Gilbert <dgilbert@redhat.com>

Reviewed-by: Juan Quintela <quintela@redhat.com>



^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2021-08-10 12:04 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-08-09 17:09 [PATCH] audio: Never send migration section Dr. David Alan Gilbert (git)
2021-08-09 17:12 ` Daniel P. Berrangé
2021-08-10  4:58   ` Philippe Mathieu-Daudé
2021-08-10 10:01     ` Dr. David Alan Gilbert
2021-08-10  8:56 ` Gerd Hoffmann
2021-08-10 12:02 ` Juan Quintela

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.