Ahoj, o víkendu jsem standardní cestou aktualizoval server z Debianu Bookworm na Trixie. Slouží mimo jiné jako hostitelský systém pro virtualizaci. Celý ugrade systému proběhl podle očekávání dobře. Problém je ale s GPU Passthrough v KVM. Na serveru jsou hostované 4 CAD stanice s grafickými kartami NVidia (různé generace, nejnovější je Ampere RTX A4000). Ve všech stanicích po aktualizaci hlásí ovladač grafiky nespecifickou chybu 43. Před upgradem fungovaly všechny VM bez problému. Začaly mi docházet nápady; napíši, co jsem zkoušel. Třeba vás něco napadne. Jádro je 6.12.38+deb13-amd64.
Ještě doplním, že jsem prošel fóra Proxmox a návody k Proxmox pro GPU passthrough, kde se diskutovala řešení k chybě 43 ovladačů NVidia. Nenašel jsem žádné funkční řešení.
- Na serveru je blacklist na nvidia i nouveau ovladače. Pro jiné účely než pro VM grafiky nepotřebuji, takže se dosud používal paušální blacklist ovladačů v /etc/modprobe/.
- Zkoušel jsem aktualizovat ovladače na stancích. Bez rozdílu.
- Dmesg nehlásí žádné chyby. Při startu VM přes virt-manager je v dmesg vidět přiřazení vfio modulu k příslušné grafice. Tento stav lze potvrdit i lspci.
- Pro jistotu jsem vyhradil zvolené grafické adaptéry pro vfio pomocí direktivy v cmdline vfio-pci.ids=<gpu>,...
- Dále je v grub cmdline podpora iommu: intel_iommu=on iommu=pt. Ze systému lze ověřit, že iommu je aktivní (viz níže).
- VM s Windows 11 i Windows 10 se chovají identicky. Můžu ještě zkusit Windows Server.
- Na všech stanicích jsou použity některé volby Hyper-V Enlightenments. Dříve s během GPU neinterferovaly a nepřijde mi, že jde o zdroj problému.
- Na testovací stanici jsem do definičního xml přidal vendor id, ale nemělo to žádný dopad.
- Chvilku jsem podezříval, jestli za problémy nemůže během update doinstalovaný balíček firmware-nvidia-graphics. Jeho odebrání nemělo vliv.
- Samozřejmě jsem zkusil i cold boot serveru.
- Zvláštní je, že se doopravdy zdá, že došlo ke kvalitativní změně chování grafik v hostovaných systémech bezprostředně po upgrade.
- Ještě několik specifik VM: používají virtio ovladače pro disková zařízení, net-kvm atp. Skutečnost, že jde o virtualizované stroje nebyla nijak skryta (navíc v kombinaci s enlightenments). Samotná VM nebyla během upgrade Debianu aktualizována.
Pro příklad posílám vybranou část z výpisu lspci -vnn na testovací GPU
82:00.0 VGA compatible controller [0300]: NVIDIA Corporation GM206GL [Quadro M2000] [10de:1430] (rev a1) (prog-if 00 [VGA controller])
Subsystem: Dell Device [1028:1190]
Flags: fast devsel, IRQ 118, NUMA node 1, IOMMU group 4
Memory at c8000000 (32-bit, non-prefetchable) [disabled] [size=16M]
Memory at 3ffe0000000 (64-bit, prefetchable) [disabled] [size=256M]
Memory at 3fff0000000 (64-bit, prefetchable) [disabled] [size=32M]
I/O ports at 8000 [size=128]
Expansion ROM at c9080000 [disabled] [size=512K]
Capabilities: [60] Power Management version 3
Capabilities: [68] MSI: Enable+ Count=1/1 Maskable- 64bit+
Capabilities: [78] Express Legacy Endpoint, IntMsgNum 0
Capabilities: [100] Virtual Channel
Capabilities: [250] Latency Tolerance Reporting
Capabilities: [258] L1 PM Substates
Capabilities: [128] Power Budgeting <?>
Capabilities: [420] Advanced Error Reporting
Capabilities: [600] Vendor Specific Information: ID=0001 Rev=1 Len=024 <?>
Capabilities: [900] Secondary PCI Express
Kernel driver in use: vfio-pci
Kernel modules: nouveau
sudo dmesg | grep -e DMAR -e IOMMU
[ 0.008623] ACPI: DMAR 0x000000007BAFE000 0000E8 (v01 DELL PE_SC3 00000001 DELL 00000001)
[ 0.008649] ACPI: Reserving DMAR table memory at [mem 0x7bafe000-0x7bafe0e7]
[ 0.032836] DMAR: IOMMU enabled
[ 0.100221] DMAR: Host address width 46
[ 0.100222] DMAR: DRHD base: 0x000000fbffc000 flags: 0x0
[ 0.100229] DMAR: dmar0: reg_base_addr fbffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[ 0.100232] DMAR: DRHD base: 0x000000c7ffc000 flags: 0x1
[ 0.100235] DMAR: dmar1: reg_base_addr c7ffc000 ver 1:0 cap 8d2078c106f0466 ecap f020df
[ 0.100237] DMAR: RMRR base: 0x0000007ae07000 end: 0x0000007af06fff
[ 0.100239] DMAR: ATSR flags: 0x0
[ 0.100240] DMAR: ATSR flags: 0x0
[ 0.100242] DMAR-IR: IOAPIC id 10 under DRHD base 0xfbffc000 IOMMU 0
[ 0.100244] DMAR-IR: IOAPIC id 8 under DRHD base 0xc7ffc000 IOMMU 1
[ 0.100245] DMAR-IR: IOAPIC id 9 under DRHD base 0xc7ffc000 IOMMU 1
[ 0.100247] DMAR-IR: HPET id 0 under DRHD base 0xc7ffc000
[ 0.100248] DMAR-IR: x2apic is disabled because BIOS sets x2apic opt out bit.
[ 0.100249] DMAR-IR: Use 'intremap=no_x2apic_optout' to override the BIOS setting.
[ 0.100926] DMAR-IR: Enabled IRQ remapping in xapic mode
[ 0.478167] DMAR: No SATC found
[ 0.478170] DMAR: dmar0: Using Queued invalidation
[ 0.478174] DMAR: dmar1: Using Queued invalidation
[ 0.488928] DMAR: Intel(R) Virtualization Technology for Directed I/O