Sziasztok!
Van egy SuperMicro A2SDi-H-TF alaplapom VT-d tamogatassal.
A videokartya [UEFI kepes]: nvflash -v dumped.rom
UEFI Version : 0x10037
UEFI Variant ID : 0x0000000000000004 ( GK1xx )
UEFI Signer(s) : Microsoft Corporation UEFI CA 2011
GRUB-ot es modulokat beallitva probalom az ASUS GT710-4H-SL-2GD5 videokartyat az egyetlen PCI-E slotban a Guestnek atadni.
iommu group:
IOMMU Group 15:
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208 [GeForce GT 710B] [10de:128b] (rev a1)
02:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev a1)
lspci -knn:
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208 [GeForce GT 710B] [10de:128b] (rev ff)
Kernel driver in use: vfio-pci
Kernel modules: nouveau
02:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev ff)
Kernel driver in use: vfio-pci
Kernel modules: snd_hda_intel
nouveau, nvidia modulok blacklisten.
libvirt xml config: https://pastebin.com/U363HCUh
a libvirt logban:
qemu-system-x86_64: vfio: Unable to power on device, stuck in D3
dmesg -ben:
kernel: [ 550.246833] vfio-pci 0000:02:00.0: enabling device (0000 -> 0003)
kernel: [ 550.247240] vfio_ecap_init: 0000:02:00.0 hiding ecap 0x19@0x900
kernel: [ 550.270767] vfio-pci 0000:02:00.1: enabling device (0000 -> 0002)
kernel: [ 551.502944] vfio_bar_restore: 0000:02:00.1 reset recovery - restoring bars
kernel: [ 551.518988] vfio_bar_restore: 0000:02:00.0 reset recovery - restoring bars
nvidia-smi -pm 1 is megvolt, de az mar be volt allitva [ezt termeszetesen iommu nelkul csinaltam]
Mikor eliditom a VM-et egy archlinux iso -val, akkor az lspci nem mutatja a videokartyat.
Valakinek otlete/tapasztalata GPU Passthrough -val?
- 538 megtekintés
Hozzászólások
Szia! Korábban csináltam ilyet, elsőre nekem sem ment de segítséggel végül sikerült, míg ott eszemben volt későbbi használatra felírtam a lépéseket: https://www.reddit.com/r/VFIO/comments/88120r/vfio_error_when_try_to_ho…
Nálad nem pont ez a probléma ahogy látom, de bízok benne hogy valamit segít ez a leírás.
- A hozzászóláshoz be kell jelentkezni
Nekem Proxmox (szintén Debian stable alap) alatt GTX1050Ti csak innen a "GPU passthrough ROM loading" résszel működött.
https://blog.quindorian.org/2018/03/building-a-2u-amd-ryzen-server-prox…
- A hozzászóláshoz be kell jelentkezni
Koszonom az otletet.
Hirtelen felindulasbol felpattintottam egy Proxmox -ot => belottem a GPU passthrough -t => megy, mint a kisangyal.
Elmentettem a VM config -jait [qemu]
Most mar nem allok neki visszatenni a debian -t, de ha esetleg elakadnek az opciok libvirt XML fajlba implementalasaban, jelentkezem.
- A hozzászóláshoz be kell jelentkezni
Namost... az a nagy helyzet
a default kernel parameterekkel ezek az IOMMU csoportok vannak:
IOMMU Group 14:
01:00.0 Co-processor [0b40]: Intel Corporation Atom Processor C3000 Series QuickAssist Technology [8086:19e2] (rev 11)
IOMMU Group 15:
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208 [GeForce GT 710B] [10de:128b] (rev a1)
02:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev a1)
IOMMU Group 16:
04:00.0 PCI bridge [0604]: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge [1a03:1150] (rev 03)
05:00.0 VGA compatible controller [0300]: ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 30)
, ami teljesen jol nez ki, de igy sehogysem megy a GPU passthrough...
...de amint aktivalom a "pcie_acs_override=downstream,multifunction" kernel parametert:
IOMMU Group 14:
01:00.0 Co-processor [0b40]: Intel Corporation Atom Processor C3000 Series QuickAssist Technology [8086:19e2] (rev 11)
IOMMU Group 15:
02:00.0 VGA compatible controller [0300]: NVIDIA Corporation GK208 [GeForce GT 710B] [10de:128b] (rev a1)
IOMMU Group 16:
02:00.1 Audio device [0403]: NVIDIA Corporation GK208 HDMI/DP Audio Controller [10de:0e0f] (rev a1)
IOMMU Group 17:
04:00.0 PCI bridge [0604]: ASPEED Technology, Inc. AST1150 PCI-to-PCI Bridge [1a03:1150] (rev 03)
05:00.0 VGA compatible controller [0300]: ASPEED Technology, Inc. ASPEED Graphics Family [1a03:2000] (rev 30)
es igy siman f@szaul megy a grafikus kartya a VM-ben.
Valakinek valami otlet? [Ha mas nem marad, akkor megy vissza debian es patchelem a kernelt az ACS-sel]
- A hozzászóláshoz be kell jelentkezni
nekem valami olyan remlik hogy egy kartya osszes funkciojat egyben lehet atadni, vagyis a videokartya+audio funkciot is at kell adni 02:00.0 + 02:00.1.
aztan lehet hogy ez a feltetel mar nem el.
neked aztan fura humorod van...
- A hozzászóláshoz be kell jelentkezni
az egy IOMMU group -ban levo mindegyik eszkozt at kell adni a guest -nek; es en at is adom, de nem megy ugy
ha patchelt kernellel inditom, akkor ugye mind a VGA, mind az audio resze kulon IOMMU group -ban van, ahol csak a VGA-t adom at => mukodik
Ha a patchelt kernellel mindkettot [VGA+AUDIO] atadom, akkor sem megy.
- A hozzászóláshoz be kell jelentkezni
Elképzelhetőnek tartom, hogy azért nem megy, mert az eredetileg azonos eszközön lévő két funkciót a VM-ben túl messze rakod egymástól. A host ("forrás") oldalon ezek a címek érvényesek:
<address domain='0x0000' bus='0x02' slot='0x00' function='0x0'/>
<address domain='0x0000' bus='0x02' slot='0x00' function='0x1'/>
a VM-ben azonban az alábbi címekhez rendeled a funkciókat:
<address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0' multifunction='on'/>
<address type='pci' domain='0x0000' bus='0x09' slot='0x00' function='0x0'/>
Szemmel láthatóan nemhogy nem raktad az eredeti funkciókat azonos eszközre (slot-ra), 0-s és 1-es funkcióként, de még azonos buszra sem tetted azokat (külön eszközként, mindegyiket csak 0-s funkcióval). A domain XML-ből kiderül, hogy a 8-as busz egy külön PCIe root port:
<controller type='pci' index='8' model='pcie-root-port'>
9-es PCI busz meg egyáltalán nincs is a domain XML-edben (tehát a domain XML önmagában is rossz).
Míg az stimmel, hogy egy PCIe root port buszán valóban csak a 0-s slot értelmezett, attól még külön root port-ok alá rakni a kártya két funkcióját garantáltan összezavarja a Windows-os nvidia drivert -- ilyet a valóságban ő sosem látott.
A Linux guest-ben az lspci-nek mennie kellene; szerintem a probléma ott a 9-es busszal lesz.
Nekem nagyon hasonló (bár régebbi) kártyám van, GTX750. Azzal a fenti PCIe topológia szintén nem megy (sőt, az sem megy, ha azonos PCIe root port alá, tehát azonos buszra rakom a guest-ben, következésképpen a kizárólagosan értelmezett 0-s slot-nak a 0-s és 1-es funkciójára pakolva a két funkciót). Nálam a GTX750-nel az vált be, ha a VM-ben a PCIe root complex-be integrált PCI végpontokként jelenítem meg a két funkciót. Tehát lehetnek külön slot-ban (nem muszáj a funkciókat egy multifunction device-ba pakolni a guest-ben), de a busznak a 0-s nak kell lennie.
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x21' slot='0x00' function='0x0'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
</hostdev>
<hostdev mode='subsystem' type='pci' managed='yes'>
<source>
<address domain='0x0000' bus='0x21' slot='0x00' function='0x1'/>
</source>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
</hostdev>
Ebből a lényeg az, hogy a guest hol látja:
<address type='pci' domain='0x0000' bus='0x00' slot='0x03' function='0x0'/>
<address type='pci' domain='0x0000' bus='0x00' slot='0x04' function='0x0'/>
A 0-s PCI busz pedig ez, ugye:
<controller type='pci' index='0' model='pcie-root'/>
Én mondjuk Linux guest-et ilyen célra régen használtam, de a Windows-os nvidia driver ezt a topológiát elfogadja.
Ajánlott olvasmány: https://git.qemu.org/?p=qemu.git;a=blob;f=docs/pcie.txt
- A hozzászóláshoz be kell jelentkezni
ezt talaltam nemtom segit-e
https://heiko-sieger.info/iommu-groups-what-you-need-to-consider/
neked aztan fura humorod van...
- A hozzászóláshoz be kell jelentkezni