From c8bd54e9a8367c4926a7029b209fded16f46c040 Mon Sep 17 00:00:00 2001 From: Dominik Csapak Date: Mon, 27 Feb 2023 16:34:27 +0100 Subject: [PATCH] fix #4553: nvidia vgpu: reuse smbios uuid for '-uuid' parameter instead of using the mdev uuid. The nvidia driver does not actually care that it's the same as the mdev, and in qemu the uuid parameter overwrites the smbios1 uuid internally, so we should have been reusing that in the first place. Signed-off-by: Dominik Csapak --- PVE/QemuServer.pm | 9 +++++++-- 1 file changed, 7 insertions(+), 2 deletions(-) diff --git a/PVE/QemuServer.pm b/PVE/QemuServer.pm index 40be44db..349cfe4e 100644 --- a/PVE/QemuServer.pm +++ b/PVE/QemuServer.pm @@ -5851,9 +5851,14 @@ sub vm_start_nolock { for my $dev ($d->{pciid}->@*) { my $info = PVE::QemuServer::PCI::prepare_pci_device($vmid, $dev->{id}, $id, $d->{mdev}); - # nvidia grid needs the uuid of the mdev as qemu parameter + # nvidia grid needs the qemu parameter '-uuid' set + # use smbios uuid or mdev uuid as fallback for that if ($d->{mdev} && !defined($uuid) && $info->{vendor} eq '10de') { - $uuid = PVE::QemuServer::PCI::generate_mdev_uuid($vmid, $id); + if (defined($conf->{smbios1})) { + my $smbios_conf = parse_smbios1($conf->{smbios1}); + $uuid = $smbios_conf->{uuid} if defined($smbios_conf->{uuid}); + } + $uuid = PVE::QemuServer::PCI::generate_mdev_uuid($vmid, $id) if !defined($uuid); } } }