[SOLVED] PCIe GPU passthrough / PCIe Link Speed

xi784

Active Member
Feb 14, 2019
22
5
43
40
Vorweg ein herzliches "Hallo" an die Proxmox-Gemeinde :),

mich würde mal interessieren ob das Problem eigentlich "hier" bekannt ist bzw. ob es ein Workaround gibt?

Beim durchreichen der PCIe Geräte (Windows Gast) wird offensichtlich die Link Speed der Lanes nicht mehr "richtig" eingestellt bzw. kann nicht durch "ASPM"? angepasst werden. In meinem Fall z.b. eine GTX1060.

siehe auch (darf noch keinen Link posten :eek:)
forum.level1techs.com/t/increasing-vfio-vga-performance/133443

lspci gibt dann auch nach starten des Gastsystems lediglich 2,5GTs/x8 aus, anstelle der 8GTs/x8 vor dem einbinden.

Das NV Control Panel zeigt die Karte ebenfalls nur noch mit PCIe x1 an. GPU-Z liest zwar PCIe 3.0 x8 aus, ich habe das aber selber mal mit "concBandwithTest" getestet und erreiche dort auch nur um die ~2600MB/s.

Das einbinden über einen "root-bus" habe ich mal getestet, leider bekomme ich die GPU/Treiber danach nicht mehr zum "laufen".

Viele Grüße
nik
 
Du könntest von q35 und pcie auf pci wechseln und es testen.
 
Hey dlimbeck,

erstmal dank für die Antwort - ja das "wäre" eine Option gewesen - scheiterte aber trotz aller Tricks am "Error 43" beim Grafiktreiber.

Aber, ich habe wohl überlesen, das bereits ein Patch in qemu 3.1 enthalten ist, was soll ich sagen - habe mir qemu 3.1 gebaut und siehe da es funktioniert und das sogar in meinem "Vollausbau"

3x GTX 1060 in 3x Windows 10 VM @ i9-9900k
8GTs x8 PCIe 3.0 ~10000MB/s via CPU
8GTs x8 PCie 3.0 ~10000MB/s via CPU
8GTs x4 PCIe 3.0 ~4500MB/s via Chipsatz

letztere war immer das größte Problem, je nach Spiel gab das ordentliche "Nachladeruckler" .. :rolleyes: - super gut.

Jetzt vermute ich allerdings, das bis es qemu 3.1 nach Proxmox schafft wohl noch einige Zeit vergehen wird :(

Lässt sich pve-qemu-kvm irgendwie mit qemu 3.1 basteln?

Viele Grüße
nik
 
Theoretisch ist es möglich, kann nur sein dass unsere Patches sich nicht einfach applien lassen. Also gut möglich dass es viel Aufwand ist. Aber grundsätzlich möglich wenn das qemu submodule auf 3.1 upgedated wird.
 
Ich wurde "gerade" per PM getriggert, inwiefern sich das bemerkbar gemacht hat.

Das Problem wird vermutlich immer erst dann deutlich, insofern man mehr als nur eine Karte durchschleift.

Mein Verständnis ist, das zumindest bei NVIDIA Grafikkarten, der Treiber die Karte nur als PCIe 1.1 "erkennt" unabhängig von der Anzahl der Lanes.
Und da mag ich mich irren, vielleicht trifft das sogar auf alle PCIe Karten zu, welche zumindest in eine Windows VM durchgereicht werden. Ich hatte sowohl das PCIe Link State Management in Windows deaktiviert, als auch dem NVIDIA Treiber via Registry "gezwungen" PCIe 3.0 zu verwenden, hatte keine Veränderung gebracht.

D.h. insofern nur eine Karte gesteckt ist, habe ich in der Praxis immer noch 2,5GTs(PCIe 1.1)/x16 und einen Durchsatz von ca. 4000 MB/s abzgl. Overhead etc., theoretisch hätten wir allerdings bei 8GTs bzw. 10GBs/x16 ca. 15500MB/s erwarten können (PCIe 3.0 arbeitet mit einer effektiveren Kodierung und erzeugt zudem weniger Overhead).

In der Praxis ist das bis dahin erst einmal irrelevant, da selbst bei grafikintensiven Spielen die Geschwindigkeit des PCIe Ports selten ausgereizt wird - konnte in der Konstellation eigentlich auch keine Probleme feststellen.

Mit der zweiten Karte allerdings wurde das Problem dann deutlicher. Teilweise und abhängig vom Spiel gab es nach einiger Zeit heftige "Nachladeruckler" (z.B. Resident Evil 7), ich vermute das Daten zwischen RAM und VRAM ausgetauscht wurden.

Mit concBandwithTest kam ich auch nur noch auf ca. 2500MB/s pro Karte, was dann auch 2,5GTs (PCIe 1.1)/x8 entspricht.

Bei der dritten Karte welche ohnehin nur noch mit 4 Lanes vom Chipsatz angebunden ist, war es dann über deutlich. Theoretisch hätte man mit PCIe 3.0 eigentlich noch ~4000MB/s erwarten können, tatsächlich waren es teilweise weniger als 1000MB/s.


Zusammenfassend:
Wer lediglich eine Karte x16 betreibt, wird vermutlich keine großen Einbußen haben.
Bei zwei Karten, via x8 Lanes ist es teilweise bemerkbar.
Und bei drei Karten bzw. eine schon nur noch via Chipsatz und x4 angebunden, merkt man es deutlich.


Der Workaround via qemu 3.1 funktioniert für mich erst einmal, da ich meine VMs in der Regel via proxmoxwol script starte, habe ich mir für die VMs ein eigenes Startscript erstellt und proxmoxwol angepasst.

VG
nik
 
Gut dass der workaround vorerst funktioniert. Wir werden es mit Sicherheit auch in Zukunft unterstützen, jedoch kann ich noch nicht sagen wann es so weit sein wird.
 
  • Like
Reactions: xi784

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!