[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [PATCH] audio: Never send migration section
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [PATCH] audio: Never send migration section |
Date: |
Tue, 10 Aug 2021 06:58:06 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:78.0) Gecko/20100101 Thunderbird/78.11.0 |
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
>