IOMMU funktioniert - aber Gerät nicht komplett verfügbar

mxarray

New Member
Dec 1, 2021
2
0
1
37
Hi,
freut mich Teil der Proxmox Community zu sein :)

Leider habe ich eine kleine Kniffelei, bei der ich ein wenig feststecke und hoffe dass mir jemand weiterhelfen kann.

Konkret geht es darum, dass wir unser LTO-Laufwerk in einer VM nutzen wollen. Zunächst ein paar Infos zum Setup:

Host:
HP ProLiant DL360 Gen9 mit 2x E5-2697A v4

Das LTO-Laufwerk ist ein IBM LTO8 Laufwerk in einem SymplyPRO LTO 1RU mit 2x Thunderbolt 3 Anschlüssen (oder SAS SFF-8088). Ich habe mich aber für die Thunderbolt-Variante entschieden und eine Thunderbolt-Karte besorgt:

Titan Ridge 4C 2018 mit einem JHL7540-Chipsatz.
An und für sich funktioniert das wunderbar.

lspci liefert mir folgende Ergebnisse:
08:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 09:00.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 09:01.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 09:02.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 09:04.0 PCI bridge: Intel Corporation JHL7540 Thunderbolt 3 Bridge [Titan Ridge 4C 2018] (rev 06) 0a:00.0 System peripheral: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] (rev 06) 0c:00.0 USB controller: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] (rev 06)

Sie sind auch alle in einer eigenen IOMMU-Group:
/sys/kernel/iommu_groups/37/devices/0000:08:00.0 /sys/kernel/iommu_groups/38/devices/0000:09:00.0 /sys/kernel/iommu_groups/39/devices/0000:09:01.0 /sys/kernel/iommu_groups/40/devices/0000:09:02.0 /sys/kernel/iommu_groups/41/devices/0000:09:04.0 /sys/kernel/iommu_groups/42/devices/0000:0a:00.0 /sys/kernel/iommu_groups/43/devices/0000:0c:00.0

Ich habe jede Gruppe überprüft und es ist jeweils nur dieses eine Gerät darin enthalten.

So weit so gut.

In der Proxmox-Administrations-Oberfläche der jeweiligen VM kann ich aber nur 0c:00.0 auswählen.
Das funktioniert wunderbar und ich habe in der VM USB3 zur Verfügung.

Allerdings kann ich die anderen Geräte nicht through passen.
Ich habe sie auch einfach in die /etc/pve/qemu-server/vmid.conf der besagten VM eingetragen, mit dem Ergebnis, dass die VM halt einfach nicht startet.

Jetzt weiß ich nicht mehr so ganz weiter. Kann es sein, dass die übrigen Geräte vom Host verwendet werden?
Wie kann ich das verhindern?

Es würde mir sehr weiterhelfen, wenn mir jemand vllt. einen Tipp oder Ähnliches geben könnte :)
Vielen vielen vielen lieben Dank und beste Grüße!

Anbei noch der Output von dmesg

root@pve01:~# dmesg | grep 08:00.0 [ 3.423862] pci 0000:08:00.0: [8086:15ea] type 01 class 0x060400 [ 3.423958] pci 0000:08:00.0: supports D1 D2 [ 3.423960] pci 0000:08:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 3.424944] pci 0000:08:00.0: PCI bridge to [bus 09-0d] [ 3.424950] pci 0000:08:00.0: bridge window [mem 0x95200000-0x953fffff] [ 3.485279] pci 0000:08:00.0: bridge window [io 0x1000-0x0fff] to [bus 09-0d] add_size 2000 [ 3.485282] pci 0000:08:00.0: bridge window [mem 0x00100000-0x002fffff 64bit pref] to [bus 09-0d] add_size 400000 add_align 100000 [ 3.485365] pci 0000:08:00.0: BAR 15: assigned [mem 0x38000000000-0x380005fffff 64bit pref] [ 3.485367] pci 0000:08:00.0: BAR 13: assigned [io 0x4000-0x5fff] [ 3.485439] pci 0000:08:00.0: PCI bridge to [bus 09-0d] [ 3.485441] pci 0000:08:00.0: bridge window [io 0x4000-0x5fff] [ 3.485445] pci 0000:08:00.0: bridge window [mem 0x95200000-0x953fffff] [ 3.485448] pci 0000:08:00.0: bridge window [mem 0x38000000000-0x380005fffff 64bit pref] [ 4.744630] pci 0000:08:00.0: Adding to iommu group 37

root@pve01:~# dmesg | grep 09:00.0 [ 3.424158] pci 0000:09:00.0: [8086:15ea] type 01 class 0x060400 [ 3.424258] pci 0000:09:00.0: supports D1 D2 [ 3.424260] pci 0000:09:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 3.425254] pci 0000:09:00.0: PCI bridge to [bus 0a] [ 3.425261] pci 0000:09:00.0: bridge window [mem 0x95300000-0x953fffff] [ 3.485393] pci 0000:09:00.0: PCI bridge to [bus 0a] [ 3.485397] pci 0000:09:00.0: bridge window [mem 0x95300000-0x953fffff] [ 4.744728] pci 0000:09:00.0: Adding to iommu group 38

root@pve01:~# dmesg | grep 09:01.0 [ 3.424356] pci 0000:09:01.0: [8086:15ea] type 01 class 0x060400 [ 3.424393] pci 0000:09:01.0: enabling Extended Tags [ 3.424458] pci 0000:09:01.0: supports D1 D2 [ 3.424459] pci 0000:09:01.0: PME# supported from D0 D1 D2 D3hot D3cold [ 3.425299] pci 0000:09:01.0: PCI bridge to [bus 0b] [ 3.485261] pci 0000:09:01.0: bridge window [io 0x1000-0x0fff] to [bus 0b] add_size 1000 [ 3.485265] pci 0000:09:01.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0b] add_size 200000 add_align 100000 [ 3.485268] pci 0000:09:01.0: bridge window [mem 0x00100000-0x000fffff] to [bus 0b] add_size 200000 add_align 100000 [ 3.485371] pci 0000:09:01.0: BAR 14: no space for [mem size 0x00200000] [ 3.485373] pci 0000:09:01.0: BAR 14: failed to assign [mem size 0x00200000] [ 3.485375] pci 0000:09:01.0: BAR 15: assigned [mem 0x38000000000-0x380001fffff 64bit pref] [ 3.485382] pci 0000:09:01.0: BAR 13: assigned [io 0x4000-0x4fff] [ 3.485390] pci 0000:09:01.0: BAR 14: no space for [mem size 0x00200000] [ 3.485391] pci 0000:09:01.0: BAR 14: failed to assign [mem size 0x00200000] [ 3.485404] pci 0000:09:01.0: PCI bridge to [bus 0b] [ 3.485406] pci 0000:09:01.0: bridge window [io 0x4000-0x4fff] [ 3.485412] pci 0000:09:01.0: bridge window [mem 0x38000000000-0x380001fffff 64bit pref] [ 4.744825] pci 0000:09:01.0: Adding to iommu group 39 [ 4.983739] pcieport 0000:09:01.0: pciehp: Slot #1 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+ IbPresDis- LLActRep+

root@pve01:~# dmesg | grep 09:02.0 [ 3.424552] pci 0000:09:02.0: [8086:15ea] type 01 class 0x060400 [ 3.424650] pci 0000:09:02.0: supports D1 D2 [ 3.424651] pci 0000:09:02.0: PME# supported from D0 D1 D2 D3hot D3cold [ 3.425593] pci 0000:0c:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:09:02.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link) [ 3.425649] pci 0000:09:02.0: PCI bridge to [bus 0c] [ 3.425655] pci 0000:09:02.0: bridge window [mem 0x95200000-0x952fffff] [ 3.485417] pci 0000:09:02.0: PCI bridge to [bus 0c] [ 3.485421] pci 0000:09:02.0: bridge window [mem 0x95200000-0x952fffff] [ 4.744920] pci 0000:09:02.0: Adding to iommu group 40

root@pve01:~# dmesg | grep 09:04.0 [ 3.424744] pci 0000:09:04.0: [8086:15ea] type 01 class 0x060400 [ 3.424781] pci 0000:09:04.0: enabling Extended Tags [ 3.424845] pci 0000:09:04.0: supports D1 D2 [ 3.424847] pci 0000:09:04.0: PME# supported from D0 D1 D2 D3hot D3cold [ 3.425702] pci 0000:09:04.0: PCI bridge to [bus 0d] [ 3.485272] pci 0000:09:04.0: bridge window [io 0x1000-0x0fff] to [bus 0d] add_size 1000 [ 3.485274] pci 0000:09:04.0: bridge window [mem 0x00100000-0x000fffff 64bit pref] to [bus 0d] add_size 200000 add_align 100000 [ 3.485277] pci 0000:09:04.0: bridge window [mem 0x00100000-0x000fffff] to [bus 0d] add_size 200000 add_align 100000 [ 3.485376] pci 0000:09:04.0: BAR 14: no space for [mem size 0x00200000] [ 3.485378] pci 0000:09:04.0: BAR 14: failed to assign [mem size 0x00200000] [ 3.485380] pci 0000:09:04.0: BAR 15: assigned [mem 0x38000200000-0x380003fffff 64bit pref] [ 3.485384] pci 0000:09:04.0: BAR 13: assigned [io 0x5000-0x5fff] [ 3.485387] pci 0000:09:04.0: BAR 14: no space for [mem size 0x00200000] [ 3.485388] pci 0000:09:04.0: BAR 14: failed to assign [mem size 0x00200000] [ 3.485427] pci 0000:09:04.0: PCI bridge to [bus 0d] [ 3.485429] pci 0000:09:04.0: bridge window [io 0x5000-0x5fff] [ 3.485434] pci 0000:09:04.0: bridge window [mem 0x38000200000-0x380003fffff 64bit pref] [ 4.745019] pci 0000:09:04.0: Adding to iommu group 41 [ 4.984155] pcieport 0000:09:04.0: pciehp: Slot #4 AttnBtn- PwrCtrl- MRL- AttnInd- PwrInd- HotPlug+ Surprise+ Interlock- NoCompl+ IbPresDis- LLActRep+

root@pve01:~# dmesg | grep 0a:00.0 [ 3.425004] pci 0000:0a:00.0: [8086:15eb] type 00 class 0x088000 [ 3.425020] pci 0000:0a:00.0: reg 0x10: [mem 0x95300000-0x9533ffff] [ 3.425029] pci 0000:0a:00.0: reg 0x14: [mem 0x95340000-0x95340fff] [ 3.425147] pci 0000:0a:00.0: supports D1 D2 [ 3.425149] pci 0000:0a:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 4.745121] pci 0000:0a:00.0: Adding to iommu group 42

root@pve01:~# dmesg | grep 0c:00.0 [ 3.425360] pci 0000:0c:00.0: [8086:15ec] type 00 class 0x0c0330 [ 3.425378] pci 0000:0c:00.0: reg 0x10: [mem 0x95200000-0x9520ffff] [ 3.425522] pci 0000:0c:00.0: supports D1 D2 [ 3.425523] pci 0000:0c:00.0: PME# supported from D0 D1 D2 D3hot D3cold [ 3.425593] pci 0000:0c:00.0: 8.000 Gb/s available PCIe bandwidth, limited by 2.5 GT/s PCIe x4 link at 0000:09:02.0 (capable of 31.504 Gb/s with 8.0 GT/s PCIe x4 link) [ 4.745223] pci 0000:0c:00.0: Adding to iommu group 43 [ 5.935190] xhci_hcd 0000:0c:00.0: xHCI Host Controller [ 5.935199] xhci_hcd 0000:0c:00.0: new USB bus registered, assigned bus number 6 [ 5.936432] xhci_hcd 0000:0c:00.0: hcc params 0x200077c1 hci version 0x110 quirks 0x0000000200009810 [ 5.936860] xhci_hcd 0000:0c:00.0: xHCI Host Controller [ 5.936866] xhci_hcd 0000:0c:00.0: new USB bus registered, assigned bus number 7 [ 5.936871] xhci_hcd 0000:0c:00.0: Host supports USB 3.1 Enhanced SuperSpeed [ 5.936987] usb usb6: SerialNumber: 0000:0c:00.0 [ 5.937483] usb usb7: SerialNumber: 0000:0c:00.0 [ 47.590146] xhci_hcd 0000:0c:00.0: remove, state 4 [ 47.590513] xhci_hcd 0000:0c:00.0: USB bus 7 deregistered [ 47.590527] xhci_hcd 0000:0c:00.0: remove, state 4 [ 47.591983] xhci_hcd 0000:0c:00.0: USB bus 6 deregistered [ 57.708740] vfio-pci 0000:0c:00.0: enabling device (0000 -> 0002) [ 58.336516] vfio-pci 0000:0c:00.0: vfio_ecap_init: hiding ecap 0x19@0x700 [ 3072.762915] vfio-pci 0000:0c:00.0: enabling device (0000 -> 0002) [ 3073.209335] vfio-pci 0000:0c:00.0: vfio_ecap_init: hiding ecap 0x19@0x700 [ 3082.991433] vfio-pci 0000:0c:00.0: enabling device (0000 -> 0002) [ 3083.920522] vfio-pci 0000:0c:00.0: vfio_ecap_init: hiding ecap 0x19@0x700 [ 3103.707576] vfio-pci 0000:0c:00.0: enabling device (0000 -> 0002) [ 3105.095248] vfio-pci 0000:0c:00.0: vfio_ecap_init: hiding ecap 0x19@0x700
 
Last edited:
In der Proxmox-Administrations-Oberfläche der jeweiligen VM kann ich aber nur 0c:00.0 auswählen.
es kann sein dass wir zuviel für die gui rausfiltern, kannst du mal den output von 'lspci -nnk' posten?

Allerdings kann ich die anderen Geräte nicht through passen.
Ich habe sie auch einfach in die /etc/pve/qemu-server/vmid.conf der besagten VM eingetragen, mit dem Ergebnis, dass die VM halt einfach nicht startet.
was sagt denn der start tasklog?
bzw. wie sieht denn die config dann aus? (qm config ID)
 
Hi, danke für deine Nachricht.

anbei der Output von lspci -nnk



Dann, QM Config, in der Variante wie sie startet:
root@pve01:~# qm config 105 agent: 1 balloon: 1024 boot: order=scsi0;ide2;net0 cores: 4 hostpci0: 0000:0c:00.0 ide2: none,media=cdrom memory: 2048 name: mxr-archiware net0: virtio=DE:C2:B3:CF:A1:40,bridge=vmbr0,firewall=1 numa: 0 onboot: 1 ostype: l26 parent: before_install scsi0: local-lvm:vm-105-disk-0,size=32G scsihw: virtio-scsi-pci smbios1: uuid=936d4314-12b6-4498-bbd4-1ac37175986f sockets: 1 vmgenid: b60d83e3-7ccd-44f4-98e9-a863626f838b

wenn ich dann die hostpci0 so anpasse:
hostpci0: 0000:08:00.0,0000:09:00.0,0000:09:01.0,0000:09:02.0,0000:09:04.0,0000:0a:00.0,0000:0c:00.0

Verschwindet das PCI-Device aus der GUI und ich kann die VM starten, aber nichts taucht auf.

Wenn ich es dann so anpasse:
hostpci0: 0000:0c.00.0 hostpci1: 0000:08:00.0

Habe ich im StartLog folgende Meldung:

kvm: -device vfio-pci,host=0000:08:00.0,id=hostpci1,bus=pci.0,addr=0x11: vfio 0000:08:00.0: failed to open /dev/vfio/37: No such file or directory TASK ERROR: start failed: QEMU exited with code 1
 

Attachments

ok soweit ich das sehe (hab selber mit thunderbolt noch nicht viel rumgespielt) sind 08:00.0-09:04.0 nur die pcie ports (die kann man soweit ich weiß nicht direkt durchreichen, nur devices die da drin sind).

Wenn das ganze thunderbolt device durchgereicht werden soll glaub ich müssen:

0a:00.0 System peripheral [0880]: Intel Corporation JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] [8086:15eb] (rev 06)
Subsystem: ASUSTeK Computer Inc. JHL7540 Thunderbolt 3 NHI [Titan Ridge 4C 2018] [1043:8794]
Kernel driver in use: thunderbolt
Kernel modules: thunderbolt

0c:00.0 USB controller [0c03]: Intel Corporation JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] [8086:15ec] (rev 06)
Subsystem: ASUSTeK Computer Inc. JHL7540 Thunderbolt 3 USB Controller [Titan Ridge 4C 2018] [1043:8794]
Kernel driver in use: vfio-pci
Kernel modules: xhci_pci

durchgereicht werden (dann sollten auch die ports am host nicht sichtbar sein)
(das blacklisten des thunderbolt moduls bzw. das zuweisen zu vfio-pci nicht vergessen)

wenn ich dann die hostpci0 so anpasse:
hostpci0: 0000:08:00.0,0000:09:00.0,0000:09:01.0,0000:09:02.0,0000:09:04.0,0000:0a:00.0,0000:0c:00.0
das ist übrigens die falsche syntax

Wenn ich es dann so anpasse:
hostpci0: 0000:0c.00.0 hostpci1: 0000:08:00.0
so wäre es richtig (mit den anderen Adressen)
 

About

The Proxmox community has been around for many years and offers help and support for Proxmox VE, Proxmox Backup Server, and Proxmox Mail Gateway.
We think our community is one of the best thanks to people like you!

Get your subscription!

The Proxmox team works very hard to make sure you are running the best software and getting stable updates and security enhancements, as well as quick enterprise support. Tens of thousands of happy customers have a Proxmox subscription. Get yours easily in our online shop.

Buy now!