GART IOMMU Grafikkarte Passtrough möglich?

ProxmoxMobil

Member
Dec 24, 2021
13
0
6
34
Hallo,

ich möchte bei meiner Workstation Grafikkarten an die VMs durchreichen. Herausgefunden habe ich, dass es sich um das alte GART IOMMU handelt. Es gibt Forumsbeiträge dass es damit möglich sein sollte, aber nirgends was konkretes. Im BIOS ist IOMMU aktiviert mit 512 MB (bei 1024 und 2048 bootet das Board nicht). Erst mal die Frage ob es überhaupt geht. Nächste Frage, wie kompliziert es wird.

Hardware
Tyan S2915-E
zwei Opteron 8439 SE
64 GB RAM Reg/ECC (ECC deaktiviert)
NVIDIA GTX960
NVIDIA GT210
NVIDIA 7100GS

Proxmox ist frisch installiert, hier der Auszug:
CPU(s)

12 x Six-Core AMD Opteron(tm) Processor 8439 SE (2 Sockets)
Kernel Version

Linux 6.2.16-3-pve #1 SMP PREEMPT_DYNAMIC PVE 6.2.16-3 (2023-06-17T05:58Z)
PVE Manager Version

pve-manager/8.0.3/bbf3993334bfa916


Code:
root@server:~# dmesg | grep -e DMAR -e IOMMU
[    1.312265] PCI-DMA: using GART IOMMU.
[    1.312272] PCI-DMA: Reserving 512MB of IOMMU area in the AGP aperture

Code:
root@abc:~# pvesh get /nodes/abc/hardware/pci --pci-class-blacklist ""
┌──────────┬────────┬──────────────┬────────────┬────────┬───────────────────────────────────────────────────┬──────┬──────────────────┬───────────────────────┬───────────
│ class    │ device │ id           │ iommugroup │ vendor │ device_name                                       │ mdev │ subsystem_device │ subsystem_device_name │ subsystem_
╞══════════╪════════╪══════════════╪════════════╪════════╪═══════════════════════════════════════════════════╪══════╪══════════════════╪═══════════════════════╪═══════════
│ 0x010185 │ 0x037f │ 0000:00:05.0 │         -1 │ 0x10de │ MCP55 SATA Controller                             │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x010185 │ 0x037f │ 0000:00:05.1 │         -1 │ 0x10de │ MCP55 SATA Controller                             │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x010185 │ 0x037f │ 0000:00:05.2 │         -1 │ 0x10de │ MCP55 SATA Controller                             │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x01018a │ 0x036e │ 0000:00:04.0 │         -1 │ 0x10de │ MCP55 IDE                                         │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x030000 │ 0x016a │ 0000:02:00.0 │         -1 │ 0x10de │ NV44 [GeForce 7100 GS]                            │      │ 0x0340           │                       │ 0x1462   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x030000 │ 0x1401 │ 0000:06:00.0 │         -1 │ 0x10de │ GM206 [GeForce GTX 960]                           │      │ 0x3690           │                       │ 0x1458   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x030000 │ 0x0a65 │ 0000:83:00.0 │         -1 │ 0x10de │ GT218 [GeForce 210]                               │      │ 0x0401           │                       │ 0x10b0   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x040300 │ 0x0371 │ 0000:00:06.1 │         -1 │ 0x10de │ MCP55 High Definition Audio                       │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x040300 │ 0x0fba │ 0000:06:00.1 │         -1 │ 0x10de │ GM206 High Definition Audio Controller            │      │ 0x3690           │                       │ 0x1458   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x040300 │ 0x0be3 │ 0000:83:00.1 │         -1 │ 0x10de │ High Definition Audio Controller                  │      │ 0x0401           │                       │ 0x10b0   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x050000 │ 0x0369 │ 0000:00:00.0 │         -1 │ 0x10de │ MCP55 Memory Controller                           │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x050000 │ 0x0369 │ 0000:80:00.0 │         -1 │ 0x10de │ MCP55 Memory Controller                           │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x050000 │ 0x0361 │ 0000:80:01.0 │         -1 │ 0x10de │ MCP55 LPC Bridge                                  │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1200 │ 0000:00:18.0 │         -1 │ 0x1022 │ Family 10h Processor HyperTransport Configuration │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1201 │ 0000:00:18.1 │         -1 │ 0x1022 │ Family 10h Processor Address Map                  │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1202 │ 0000:00:18.2 │         -1 │ 0x1022 │ Family 10h Processor DRAM Controller              │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1203 │ 0000:00:18.3 │         -1 │ 0x1022 │ Family 10h Processor Miscellaneous Control        │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1204 │ 0000:00:18.4 │         -1 │ 0x1022 │ Family 10h Processor Link Control                 │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1200 │ 0000:00:19.0 │         -1 │ 0x1022 │ Family 10h Processor HyperTransport Configuration │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1201 │ 0000:00:19.1 │         -1 │ 0x1022 │ Family 10h Processor Address Map                  │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1202 │ 0000:00:19.2 │         -1 │ 0x1022 │ Family 10h Processor DRAM Controller              │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1203 │ 0000:00:19.3 │         -1 │ 0x1022 │ Family 10h Processor Miscellaneous Control        │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060000 │ 0x1204 │ 0000:00:19.4 │         -1 │ 0x1022 │ Family 10h Processor Link Control                 │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060100 │ 0x0364 │ 0000:00:01.0 │         -1 │ 0x10de │ MCP55 LPC Bridge                                  │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060400 │ 0x0376 │ 0000:00:0a.0 │         -1 │ 0x10de │ MCP55 PCI Express bridge                          │      │ 0x0000           │                       │ 0x10de   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060400 │ 0x0378 │ 0000:00:0d.0 │         -1 │ 0x10de │ MCP55 PCI Express bridge                          │      │ 0x0000           │                       │ 0x10de   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060400 │ 0x0377 │ 0000:00:0f.0 │         -1 │ 0x10de │ MCP55 PCI Express bridge                          │      │ 0x0000           │                       │ 0x10de   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060400 │ 0x0125 │ 0000:03:00.0 │         -1 │ 0x1033 │ uPD720400 PCI Express - PCI/PCI-X Bridge          │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060400 │ 0x0125 │ 0000:03:00.1 │         -1 │ 0x1033 │ uPD720400 PCI Express - PCI/PCI-X Bridge          │      │ 0x0000           │                       │ 0x0000   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060400 │ 0x0376 │ 0000:80:0a.0 │         -1 │ 0x10de │ MCP55 PCI Express bridge                          │      │ 0x0000           │                       │ 0x10de   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060400 │ 0x0378 │ 0000:80:0d.0 │         -1 │ 0x10de │ MCP55 PCI Express bridge                          │      │ 0x0000           │                       │ 0x10de   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060400 │ 0x0377 │ 0000:80:0f.0 │         -1 │ 0x10de │ MCP55 PCI Express bridge                          │      │ 0x0000           │                       │ 0x10de   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x060401 │ 0x0370 │ 0000:00:06.0 │         -1 │ 0x10de │ MCP55 PCI bridge                                  │      │ 0xcb84           │                       │ 0x10de   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x068000 │ 0x0373 │ 0000:00:08.0 │         -1 │ 0x10de │ MCP55 Ethernet                                    │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x068000 │ 0x0373 │ 0000:00:09.0 │         -1 │ 0x10de │ MCP55 Ethernet                                    │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x0c0310 │ 0x036c │ 0000:00:02.0 │         -1 │ 0x10de │ MCP55 USB Controller                              │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x0c0320 │ 0x036d │ 0000:00:02.1 │         -1 │ 0x10de │ MCP55 USB Controller                              │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x0c0500 │ 0x0368 │ 0000:00:01.1 │         -1 │ 0x10de │ MCP55 SMBus Controller                            │      │ 0x2915           │                       │ 0x10f1   
├──────────┼────────┼──────────────┼────────────┼────────┼───────────────────────────────────────────────────┼──────┼──────────────────┼───────────────────────┼───────────
│ 0x0c0500 │ 0x0368 │ 0000:80:01.1 │         -1 │ 0x10de │ MCP55 SMBus Controller                            │      │ 0x2915           │                       │ 0x10f1   
└──────────┴────────┴──────────────┴────────────┴────────┴───────────────────────────────────────────────────┴──────┴──────────────────┴───────────────────────┴──────────
 
mhmm scheinbar werden keine iommu gruppen angelegt, kannst du mal den ganzen 'dmesg' output posten? grundsätzlich ist der passthrough support besser mit neuerer hardware (mb + cpu sind schon >10 jahre alt)..
hab auch nicht wirklich infos gefunden dass passthrough mit dem mainboard/chipsatz funktionieren würde... ich glaube es ist leider einfach zu alt um das richtig zu unterstützen...
 
Ist schon klar, dass neuere Hardware das besser kann. Mir würde der PC bestimmt noch 5 bis 10 Jahre ausreichen. Wäre schade, wenn nur wegen der fehlenden Unterstützung von PCI Passtrough ein neuer PC her muss. Ich habe parallel mal grob geschaut. Sollte ja schon was mit DDR4 sein, damit sich das lohnt. Dann bin ich bei HP Z6 G4 mit 800 €. Geht sicher günstiger. Aber für die gleiche Ausstattung und ausbaufähigkeit wird es wohl nicht unter 500 € sein.

Vielleicht gibt dmesg im Anhang mehr Auskunft.
 

Attachments

ok das dmesg hilft auch nicht viel weiter.

leider findet man auch wenig offizielle infos zu diesen alten amd cpus, aber laut: https://www.cpu-world.com/CPUs/K10/AMD-Six-Core Opteron 8439 SE - OS8439YDS6DGN.html
unterstützt der prozessur nur "AMD-V" nicht "AMD-V 2.0)" das I/O Virtualizition hat (das eigentlich benötigte feature, IOMMU wurde davor auch schon von amd verbaut, aber nicht für virtualisierung)

EDIT:

als beispiel für einen neueren opteron:
https://www.cpu-world.com/CPUs/K10/AMD-Opteron 6128 - OS6128WKT8EGO (OS6128WKT8EGOWOF).html

da steht dann:
  • AMD-V 2.0 (virtualization) technology:
    • AMD-V / AMD Virtualization technology
    • Tagged TLB
    • I/O Virtualization
    • Extended Migration
 
Last edited:
Danke erst mal. Ähnliche Recherche Ergebnisse hatte ich auch. IOMMU scheint nicht fest definiert zu sein was das macht und die BIOS Hilfetexte in der Form "Aktiviert oder Deaktiviert IOMMU" sind auch vollkommen sinnlos. Demzufolge fällt alles mit Grafikbeschleunigung flach.

Ich habe etwas nach einem neuen "alten" PC geschaut. Bei der viel neueren HP Z840 gibt es ebenfalls enorme Probleme mit PCIe Passtrough. Eine Quadro Grafikkarte war die Lösung. Die Kosten werden damit viel zu hoch für den erhofften Effekt.

Hintergrund ist, dass mich die ständigen Zwangsupdates und Inkompatibilitäten dermaßen ankotzen, dass ich verschiedene Anwendungsfälle (Gaming, Mikrocontrollerprogrammierung, Heimkino, ...) in verschiedene VMs packen wollte. Bei einem missglückten Update kann man einfacher zurückspielen, bzw. vorher eine Kopie machen und testen.

Proxmox gefällt mir grundsätzlich (bis auf die Installation, die macht zu viele Probleme) und auch das Konzept mehrere PCs zu organisieren. Ich setze es bereits erfolgreich auf einem anderen PC ein.

Ich überlege jetzt, ob ich das Windows 7 für Gaming mit Hardwarebeschleunigung drauf lasse, wie es ist, solange es geht. Und eine Virtualisierung innerhalb Windows nutze. Gibt es etwas, was trotzdem zu Proxmox kompatibel wäre? Mir wäre vor allem wichtig VMs einfach hin und her zu schubsen, um diese auch auf meinem Laptop mit Proxmox benutzen zu können. Ich möchte grundsätzlich am großen PC mit den vielen Monitoren programmieren, aber auch unterwegs mal etwas anpassen.
 
Gibt es etwas, was trotzdem zu Proxmox kompatibel wäre? Mir wäre vor allem wichtig VMs einfach hin und her zu schubsen, um diese auch auf meinem Laptop mit Proxmox benutzen zu können.
nicht wirklich, PVE verwendet qemu+kvm unter der Haube für VMs, Virtualisierung unter windows ist generell hyper-v...
du könntest versuchen die disk images hin und her zu schieben (sofern sie in einem kompatiblen format sind), aber wie gut das OS im gast das verträgt wenn sich oft die hw ändert kann ich dir auch nicht genau sagen
 
Das Gast OS, welches ich hin und her schieben würde, wäre das für die Programmierung. Das soll eigentlich mal Debian werden. Aktuell noch Windows 7.

Ich warte erst mal ab, was zum Jahreswechsel mit Steam passiert und entscheide dann. Die Programmierumgebung zieh ich trotzdem schon mal auf Proxmox hoch. Mal schauen wie schlimm die Eingabeverzögerung über Gigabit Ethernet zum Laptop mit Proxmox wird.

Danke erst mal für die Hilfe.
 

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!