VM startet nicht - pci passthrough funktioniert nicht?

DerTom246

Active Member
Feb 24, 2020
41
1
28
56
Hallo zusammen,

ich habe soeben versucht, eine Netzwerkkarte und einen Festplattencontroller an eine VM durchzureichen.

Bezgülich des pci passthrough habe ich mich an diese Anleitung gehalten:


Die VM will aber nicht starten... Folgender Fehler wird angezeigt.
Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Device or resource busy
TASK ERROR: start failed: QEMU exited with code 1

Wie muss ich das jetzt lesen bzw. was sagt mir der Fehler? Durchgereicht wird eine Mellanox Connect-x2. Dabei habe ich nur den ersten Eintrag (01:00.0) durchgereicht. Nicht die 01:00.1 - 01:00.7, da diese unter dem Menu Hardware alle mit 01:00 angezeigt wurden und ich davon ausgegangen bin, dass alle unter 01:00 'laufen'.

Vielen Dank!
 
Ich vermute mal, dass das Kernel-Modul für den Controller und/ oder die NIC nicht in der Blackliste steht und daher vom Host belegt ist.
 
Hallo gmed,

der Festplattencontroller wird ohne Probleme durchgereicht und die VM startet, wenn ich den Eintrag für die Netzwerkkarte entferne.

Das sind die der Netzwerkkarte zugewiesenen Controller:
root@pve:~# lspci | grep Mellanox
01:00.0 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
01:00.1 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
01:00.2 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
01:00.3 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
01:00.4 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
01:00.5 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
01:00.6 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)
01:00.7 Ethernet controller: Mellanox Technologies MT26448 [ConnectX EN 10GigE, PCIe 2.0 5GT/s] (rev b0)

Mal ganz abgesehen davon, dass ich nicht 'acht Geräte' durchreichen kann - ist wohl auf vier begrenzt - frage ich mich schon, warum hier acht Controller gelistet werden!? Einzelne Controller, wie 01:00.1 und 01:00.2 durchreichen, funktioniert auch nicht.

Ist die Netzwerkkarte somit für meinen Aufbau nicht geeignet oder schlicht kaputt?
 
Mal ganz abgesehen davon, dass ich nicht 'acht Geräte' durchreichen kann - ist wohl auf vier begrenzt - frage ich mich schon, warum hier acht Controller gelistet werden!?

Das darfst du bei Mellanox nachfragen, das ist ja ein Hardwareimplementierungsdetail.

Einzelne Controller, wie 01:00.1 und 01:00.2 durchreichen, funktioniert auch nicht.

Wenn diese in ihren eigenen IOMMU-Gruppen liegen, sollte das klappen, wenn das Gerät nicht vom Host verwendet wird. Dann kann es sein, dass du zuerst das entsprechende PCI-Gerät vom Treiber deregistrieren musst.
 
Das darfst du bei Mellanox nachfragen, das ist ja ein Hardwareimplementierungsdetail.



Wenn diese in ihren eigenen IOMMU-Gruppen liegen, sollte das klappen, wenn das Gerät nicht vom Host verwendet wird. Dann kann es sein, dass du zuerst das entsprechende PCI-Gerät vom Treiber deregistrieren musst.
Ich übersetze das dann mal für mich in 'Netzwerkkarte für Anwendung nicht geeignet'.

Viele Grüße und danke für die Hinweise.
 
Ich hatte gehofft, dass der Austausch der Netzwerkkarte die Probleme lösen würde... Hat es, aber nur teilweise...

Ich habe jetzt zwei Einträge für die Netzwerkkarte, was bei einer dual-Karte auch passt.

Das Durchreichen der Karte ist aber unverändert nicht möglich, da 'device already attached' beim Start der VM als Fehler ausgegeben wird.

LnxBil hatte ja schon auf das eventuell erforderliche Deregistrieren der Karte hingewiesen.

Die Frage ist nun aber wie...?

die pci-ids der NIC sind schon als option für den vfio-pci treiber angegeben - siehe referenzdokumentation:
https://pve.proxmox.com/pve-docs/chapter-qm.html#_host_device_passthrough

Hallo Stoiko Ivanov,

habe deinen Hinweis leider erst nach diesem Post gesehen. Ich hoffe, ich liege mit meinem Vorgehen und den daraus gezogenen Schlüssen nicht falsch...

Viele Grüße
 
Last edited:
So... es wird einfach nicht besser...

1. Das Problem mit der Netzwerkkarte ist gelöst. Es reicht das erste pci-Gerät (01:00.0) an die VM durchzureichen, dann wird auch 01:00.1 in der VM erkannt.

2. Ich kann jetzt zwar die VM starten, Grub bricht aber ab.

"Booting from Hard Disk...
GRUB"

Das ist alles... Kein grub-prompt.

Ich habe ja nun neben der Netzwerkkarte auch einen hba-controller durchgereicht. In meiner ersten VM konnte ich ebenfalls nicht booten - gleiche Meldung - und habe dann eine zweite VM erzeugt und vor der Installation von debian/OMV die beiden pci Geräte (hba-controller und Netzwerkkarte) durchgereicht. Als Installationsfestplatte habe ich die virtuelle Platte gewählt. Hat aber nicht geholfen...

Wie mache ich denn jetzt weiter?

die pci-ids der NIC sind schon als option für den vfio-pci treiber angegeben - siehe referenzdokumentation:
https://pve.proxmox.com/pve-docs/chapter-qm.html#_host_device_passthrough

Hallo Stoiko Ivanov,

ich habe deinen Hinweis leider erst nach meinem Post hier gesehen. Ich hoffe ich liege mit meinen Schlüssen nicht falsch.

Viele Grüße
 
Last edited:
Hallo Zusammen, bevor ich ein neues Thema öffne, schliesse ich hier einmal an:
Folgendes Scenario: PCI (nicht PCIe) DVB-S-Karte steckt in der Maschine und wird über 0000:08:08.0 auch als solche erkannt.
Ich möchte die Karte an eine VM weiterreichen, meine beiden CPUs (2x Xeon X5650) unterstützt VT-x und VT-d, beides ist auch im BIOS aktiviert.
Die VM hat folgende relevante Hardware Einstellungen:
  1. BIOS: OVMF (UEFI)
  2. EFI Disk (local-lvm mit 4MB)
  3. PCI Gerät (hostpci0): 08:08
und folgende Optionen:
  1. ACPI Unterstützung: Ja
  2. KVM Hardware-Virtualisierung: Ja
  3. SPICE Erweiterungen: keine
in der /etc/default/grub ist ergänzt:
Code:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on"

in der /etc/modules ist eingetragen:
Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

Die Ausgabe von lspci -nnk | grep sat sieht so aus:
Code:
# lspci -nnk | grep sat
08:08.0 Network controller [0280]: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card [13d0:2103] (rev 02)
        Subsystem: Techsan Electronics Co Ltd B2C2 FlexCopII DVB chip / Technisat SkyStar2 DVB card [13d0:2103]

Beim Starten der VM kommt leider immer eine Fehlermeldung.

Code:
kvm: -device vfio-pci,host=0000:08:08.0,id=hostpci0,bus=pci.0,addr=0x10: vfio 0000:08:08.0: Failed to set up TRIGGER eventfd signaling for interrupt INTX-0: VFIO_DEVICE_SET_IRQS failure: Device or resource busy
TASK ERROR: start failed: QEMU exited with code 1

habe ich noch irgendetwas nicht beachtet?
Danke schonmal für eure Hilfe.
Gruss
 
Last edited:
  • Like
Reactions: CyberAchmed

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!