Any news here? I'm asking because I just saw the deprecation warning in some testing :)

On 3/27/20 1:24 PM, Aaron Lauterer wrote:


On 3/27/20 12:22 PM, Thomas Lamprecht wrote:
On 3/16/20 11:02 AM, Aaron Lauterer wrote:
With Qemu 4.2 a new `audiodev` property was introduced [0] to explicitly
specify the backend to be used for the audio device. This is accompanied
with a warning that the fallback to the default audio backend is
deprecated.

[0] https://wiki.qemu.org/ChangeLog/4.2#Audio

Signed-off-by: Aaron Lauterer <a.laute...@proxmox.com>
---
v1 [1]->v2:
the audiodev property is always set, omitting the machine version check.

Why is that OK, doesn't that breaks using a 4.1 QEMU?

Interestingly enough not in my tests.

In the v1 version of this code I did have a version check to only add it with qemu >=4.2. Live migration from qemu 4.2 (with the parameter set) to 4.1 did not show any problems in my tests.

The same goes with this code now. Starting a VM in qemu 4.1 works as well as migrating between 4.2 and 4.1.

My guess is that qemu 4.1 just ignores the audiodev property and falls back to the only audiodev that we define just below the area the patch touches (-audiodev spice,id=...)

If I am not mistaken, the audiodev backend seems to be a qemu backend thing that does not affect the hardware of the VM.

The following blog post [0] by one of the qemu devs explains the new property and what can be done with it quite nicely. At the bottom is an example that is similar to our use case.

[0] https://www.kraxel.org/blog/2020/01/qemu-sound-audiodev/



tested live migration with all 3 audio devs in both directions.


[1] https://pve.proxmox.com/pipermail/pve-devel/2020-March/042381.html

  PVE/QemuServer.pm | 6 +++---
  1 file changed, 3 insertions(+), 3 deletions(-)

diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm
index b2ff515..0905e04 100644
--- a/PVE/QemuServer.pm
+++ b/PVE/QemuServer.pm
@@ -3221,11 +3221,11 @@ sub config_to_command {
      my $id = $audio->{dev_id};
      if ($audio->{dev} eq 'AC97') {
-        push @$devices, '-device', "AC97,id=${id}${audiopciaddr}";
+        push @$devices, '-device', "AC97,id=${id}${audiopciaddr},audiodev=$audio->{backend_id}";
      } elsif ($audio->{dev} =~ /intel\-hda$/) {
          push @$devices, '-device', "$audio->{dev},id=${id}${audiopciaddr}"; -        push @$devices, '-device', "hda-micro,id=${id}-codec0,bus=${id}.0,cad=0"; -        push @$devices, '-device', "hda-duplex,id=${id}-codec1,bus=${id}.0,cad=1"; +        push @$devices, '-device', "hda-micro,id=${id}-codec0,bus=${id}.0,cad=0,audiodev=$audio->{backend_id}"; +        push @$devices, '-device', "hda-duplex,id=${id}-codec1,bus=${id}.0,cad=1,audiodev=$audio->{backend_id}";
      } else {
          die "unkown audio device '$audio->{dev}', implement me!";
      }



_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel


_______________________________________________
pve-devel mailing list
pve-devel@pve.proxmox.com
https://pve.proxmox.com/cgi-bin/mailman/listinfo/pve-devel

Reply via email to