Hallo Forengemeinde,
ich setze seit Jahren privat einen Homeserver für viele Aufgaben ein.
Eine davon ist das Aufzeichnen vom TV.
Als Hardware dient ein Core i7 3770 auf einem Gigabyte Q77m Chipsatz, voll vt-d fähig soweit ich weiß.
Als OS dient aktuell Win 2008r2, welches in dieser Konstellation wirklich absolut sauber und perfekt läuft (teilweise Uptimes von mehr als einem Jahr, seit Jahren kein einziger Absturz!).
Parallel laufen dort paar VMs unter Virtualbox.
Nachdem ich nun beruflich Proxmox nutze dachte ich - cool - mach ich zuhause auch.
Also SSD in den "Server" gekloppt, Proxmox drauf, VM erstellt und die physikalische Platte zum Test dareingeklont. Das 2008r2 fährt absolut sauber, megaschnell und ohne Probleme hoch.
Nun ging es daran die Funktionen wiederherzustellen.
zuerst nach dem Wiki beschrieben alles für PCIe Passthrough vorbereitet (iommu etc).
Zuerst die Raidkarte (rocketraid 2940 oder ähnlich) per pcie durchgeroutet, absolut sauber, alle Laufwerke sind auf Anhieb da, Datenraten sind ok, also meiner Meinung nach sind die Hardwaregegebenheiten für passthrough gegeben.
Nun die Satkarten.
Maschine fährt hoch, installiert Treiber und ab dieser Sekunde nur noch hängen und laggen, teilweise freezen, dass ich die VM hart stoppen muss.
Viel mit den im Internet gegebenen Optionen rumgespielt
iommu=pt
blacklist von dvbcore, ngene und ddbridge
unsafe irq zugelassen (options vfio_iommu_type1 allow_unsafe_interrupts=1)
hatte auch den viel diskutierten irq 16: nobody cared (try booting with the "irqpoll" option)
irqpoll eingeschaltet
acpi=debug eingeschaltet
Hängen ist nun teilweise weniger geworden, Zwischenzeitlich läuft die VM dann zügig und stabil (teilweise dann mit abschließenden komplett freeze)
EIN TEIL der Hardware wird vom Gast Windows - wie oben beschrieben - gefunden, allerdings NUR das ngene device - der dazugehörige Tuner und das Capture Device (offensichtlich Untergeräte mit subsys IDs) wird gänzlich NIE gefunden - bisher in keinem meiner gefühlten 10 000 Versuchen (bin schon seit 4 Abenden dran). Ohne die beiden Geräte findet natürlich DVBViewer keine Tuner und funktioniert nicht!!!
Im Screenshot sind es die gelb markierten Geräte (Screenshot aus der nativ laufenden 2008r2 Version in der alles funktioniert) :

Um einen Fehler im 2008r2 auszuschließen ein sauberes W10-20h2 installiert - exakt das gleiche Verhalten!
Hardwareoptionen ebenfalls durchgeprobt - "alles routen" wie auch pcie und ROM ein / aus - alles schon versucht...
Im dmesg sind meines Erachtens keine Auffälligkeiten (mehr) und mein Latein ist nun so langsam am Ende.
Aus der Vergangenheit weiß ich, dass die Karten bis v 5.5 wohl tierische Zicken sind, hatte viel mit dem Support zu tun, da ich die Karten damals beruflich Serverseitig einsetzen sollte und diese mit z.B. einem HP ML350G5 tierische Probleme verursachte...
Auffällig ist, dass die Karte sich den IRQ16 mit einem USB Controller teilt, befindet sich aber lt. Logs in einer eigenen iommu gruppe.
Die RAID Karte habe ich (um u.a. Datenverlust zu vermeiden) natürlich bei den vielen Versuchen abgehangen, also die kommen sich auch nicht in die Quere...
Noch weiteres probiert: Q35 in verschiedenen Versionen i440 in verschiedenen Versionen
Aktuell Proxmox 6.4 (gestern noch heruntergeladen und installiert)...
Logs kann ich auch gerne liefern, weiß nur nicht, wo ich anfangen soll...
Über Hilfe würde ich mich wirklich riesig freuen.
Vielen lieben Dank und liebe Grüße
Dirk
EDIT:
an den IRQ Konflikt glaube ich nicht mehr, denn
befreite mir den IRQ:
trotzdem - Hängen, Laggen und die Tuner werden nicht durchgereicht. Interessant, je nach Einsellung werden teilweise rund 50000 interrupts auf CPU 2 erzeugt wärend die VM erfolglos versucht hochzufahren...
Gestern mal das ganze testweise umgekrempelt, hab die Module für die Karte unter Proxmox erlaubt und im dmesg gesehen, dass er eine Firmware vermisst. Hab die dann mal runtergeladen und anschließend werden die 4 Tuner sogar lt dmesg initialisiert... also sprechen tut die Hardware...
hier einfach mal ins blaue:
blacklist:
vfio:
modules-load:
grub cmdline:
ich setze seit Jahren privat einen Homeserver für viele Aufgaben ein.
Eine davon ist das Aufzeichnen vom TV.
Als Hardware dient ein Core i7 3770 auf einem Gigabyte Q77m Chipsatz, voll vt-d fähig soweit ich weiß.
Als OS dient aktuell Win 2008r2, welches in dieser Konstellation wirklich absolut sauber und perfekt läuft (teilweise Uptimes von mehr als einem Jahr, seit Jahren kein einziger Absturz!).
Parallel laufen dort paar VMs unter Virtualbox.
Nachdem ich nun beruflich Proxmox nutze dachte ich - cool - mach ich zuhause auch.
Also SSD in den "Server" gekloppt, Proxmox drauf, VM erstellt und die physikalische Platte zum Test dareingeklont. Das 2008r2 fährt absolut sauber, megaschnell und ohne Probleme hoch.
Nun ging es daran die Funktionen wiederherzustellen.
zuerst nach dem Wiki beschrieben alles für PCIe Passthrough vorbereitet (iommu etc).
Zuerst die Raidkarte (rocketraid 2940 oder ähnlich) per pcie durchgeroutet, absolut sauber, alle Laufwerke sind auf Anhieb da, Datenraten sind ok, also meiner Meinung nach sind die Hardwaregegebenheiten für passthrough gegeben.
Nun die Satkarten.
Maschine fährt hoch, installiert Treiber und ab dieser Sekunde nur noch hängen und laggen, teilweise freezen, dass ich die VM hart stoppen muss.
Viel mit den im Internet gegebenen Optionen rumgespielt
iommu=pt
blacklist von dvbcore, ngene und ddbridge
unsafe irq zugelassen (options vfio_iommu_type1 allow_unsafe_interrupts=1)
hatte auch den viel diskutierten irq 16: nobody cared (try booting with the "irqpoll" option)
irqpoll eingeschaltet
acpi=debug eingeschaltet
Hängen ist nun teilweise weniger geworden, Zwischenzeitlich läuft die VM dann zügig und stabil (teilweise dann mit abschließenden komplett freeze)
EIN TEIL der Hardware wird vom Gast Windows - wie oben beschrieben - gefunden, allerdings NUR das ngene device - der dazugehörige Tuner und das Capture Device (offensichtlich Untergeräte mit subsys IDs) wird gänzlich NIE gefunden - bisher in keinem meiner gefühlten 10 000 Versuchen (bin schon seit 4 Abenden dran). Ohne die beiden Geräte findet natürlich DVBViewer keine Tuner und funktioniert nicht!!!
Im Screenshot sind es die gelb markierten Geräte (Screenshot aus der nativ laufenden 2008r2 Version in der alles funktioniert) :

Um einen Fehler im 2008r2 auszuschließen ein sauberes W10-20h2 installiert - exakt das gleiche Verhalten!
Hardwareoptionen ebenfalls durchgeprobt - "alles routen" wie auch pcie und ROM ein / aus - alles schon versucht...
Im dmesg sind meines Erachtens keine Auffälligkeiten (mehr) und mein Latein ist nun so langsam am Ende.
Aus der Vergangenheit weiß ich, dass die Karten bis v 5.5 wohl tierische Zicken sind, hatte viel mit dem Support zu tun, da ich die Karten damals beruflich Serverseitig einsetzen sollte und diese mit z.B. einem HP ML350G5 tierische Probleme verursachte...
Auffällig ist, dass die Karte sich den IRQ16 mit einem USB Controller teilt, befindet sich aber lt. Logs in einer eigenen iommu gruppe.
Die RAID Karte habe ich (um u.a. Datenverlust zu vermeiden) natürlich bei den vielen Versuchen abgehangen, also die kommen sich auch nicht in die Quere...
Noch weiteres probiert: Q35 in verschiedenen Versionen i440 in verschiedenen Versionen
Aktuell Proxmox 6.4 (gestern noch heruntergeladen und installiert)...
Logs kann ich auch gerne liefern, weiß nur nicht, wo ich anfangen soll...
Über Hilfe würde ich mich wirklich riesig freuen.
Vielen lieben Dank und liebe Grüße
Dirk
EDIT:
an den IRQ Konflikt glaube ich nicht mehr, denn
blacklist ehci_pci
blacklist ehci_hcd
befreite mir den IRQ:
16: 0 0 4 0 0 0 0 0 IR-IO-APIC 16-fasteoi vfio-intx(0000:02:00.0)
trotzdem - Hängen, Laggen und die Tuner werden nicht durchgereicht. Interessant, je nach Einsellung werden teilweise rund 50000 interrupts auf CPU 2 erzeugt wärend die VM erfolglos versucht hochzufahren...
Gestern mal das ganze testweise umgekrempelt, hab die Module für die Karte unter Proxmox erlaubt und im dmesg gesehen, dass er eine Firmware vermisst. Hab die dann mal runtergeladen und anschließend werden die 4 Tuner sogar lt dmesg initialisiert... also sprechen tut die Hardware...
hier einfach mal ins blaue:
root@pve1:~# dmesg |grep 02:00
[ 0.288116] pci 0000:02:00.0: [18c3:0720] type 00 class 0x040000
[ 0.288153] pci 0000:02:00.0: reg 0x10: [mem 0xf7d10000-0xf7d1ffff]
[ 0.288176] pci 0000:02:00.0: reg 0x14: [mem 0xf7d00000-0xf7d0ffff 64bit]
[ 0.308434] pci 0000:02:00.0: CLS mismatch (64 != 32), using 64 bytes
[ 0.983921] pci 0000:02:00.0: Adding to iommu group 13
root@pve1:~# dmesg |grep group
[ 0.110257] Built 1 zonelists, mobility grouping on. Total pages: 8226471
[ 0.234952] *** VALIDATE cgroup1 ***
[ 0.234953] *** VALIDATE cgroup2 ***
[ 0.983702] pci 0000:00:00.0: Adding to iommu group 0
[ 0.983722] pci 0000:00:01.0: Adding to iommu group 1
[ 0.983735] pci 0000:00:02.0: Adding to iommu group 2
[ 0.983744] pci 0000:00:14.0: Adding to iommu group 3
[ 0.983756] pci 0000:00:16.0: Adding to iommu group 4
[ 0.983762] pci 0000:00:16.3: Adding to iommu group 4
[ 0.983770] pci 0000:00:19.0: Adding to iommu group 5
[ 0.983777] pci 0000:00:1a.0: Adding to iommu group 6
[ 0.983784] pci 0000:00:1b.0: Adding to iommu group 7
[ 0.983792] pci 0000:00:1c.0: Adding to iommu group 8
[ 0.983799] pci 0000:00:1c.4: Adding to iommu group 9
[ 0.983806] pci 0000:00:1d.0: Adding to iommu group 10
[ 0.983814] pci 0000:00:1e.0: Adding to iommu group 11
[ 0.983888] pci 0000:00:1f.0: Adding to iommu group 12
[ 0.983895] pci 0000:00:1f.2: Adding to iommu group 12
[ 0.983903] pci 0000:00:1f.3: Adding to iommu group 12
[ 0.983911] pci 0000:01:00.0: Adding to iommu group 1
[ 0.983921] pci 0000:02:00.0: Adding to iommu group 13
[ 0.983932] pci 0000:03:00.0: Adding to iommu group 14
root@pve1:~# dmesg |grep vfio
[ 3.474617] vfio_pci: add [18c3:0720[ffffffff:ffffffff]] class 0x000000/00000000
[ 3.498617] vfio_pci: add [1103:2640[ffffffff:ffffffff]] class 0x000000/00000000
root@pve1:~#
root@pve1:~# cat /proc/interrupts
CPU0 CPU1 CPU2 CPU3 CPU4 CPU5 CPU6 CPU7
0: 6 0 0 0 0 0 0 0 IR-IO-APIC 2-edge timer
1: 0 0 0 0 0 0 4 0 IR-IO-APIC 1-edge i8042
8: 0 0 0 0 0 0 0 1 IR-IO-APIC 8-edge rtc0
9: 0 4 0 0 0 0 0 0 IR-IO-APIC 9-fasteoi acpi
12: 0 0 0 0 0 6 0 0 IR-IO-APIC 12-edge i8042
16: 0 0 4 0 0 0 0 0 IR-IO-APIC 16-fasteoi
18: 0 0 0 0 0 0 0 0 IR-IO-APIC 18-fasteoi i801_smbus
24: 0 0 0 0 0 0 0 0 DMAR-MSI 0-edge dmar0
25: 0 0 0 0 0 0 0 0 DMAR-MSI 1-edge dmar1
30: 0 16614 0 0 0 0 0 0 IR-PCI-MSI 1572864-edge enp3s0
31: 0 0 0 87174 0 0 0 0 IR-PCI-MSI 512000-edge ahci[0000:00:1f.2]
32: 0 0 0 0 0 0 0 0 IR-PCI-MSI 327680-edge xhci_hcd
33: 0 0 0 0 0 24 0 0 IR-PCI-MSI 360448-edge mei_me
34: 0 0 0 0 0 0 46 0 IR-PCI-MSI 32768-edge i915
35: 0 0 0 0 0 0 0 762 IR-PCI-MSI 442368-edge snd_hda_intel:card0
NMI: 6 13 6 10 4 8 8 7 Non-maskable interrupts
LOC: 66536 58059 46159 50510 80503 42014 55007 50174 Local timer interrupts
SPU: 0 0 0 0 0 0 0 0 Spurious interrupts
PMI: 6 13 6 10 4 8 8 7 Performance monitoring interrupts
IWI: 0 0 3 0 0 0 0 0 IRQ work interrupts
RTR: 0 0 0 0 0 0 0 0 APIC ICR read retries
RES: 64079 62691 47541 78274 26496 37834 35791 46501 Rescheduling interrupts
CAL: 3751 5209 4202 4543 5010 4493 3712 3857 Function call interrupts
TLB: 2276 3396 3027 2926 3050 2638 2622 2210 TLB shootdowns
TRM: 0 0 0 0 0 0 0 0 Thermal event interrupts
THR: 0 0 0 0 0 0 0 0 Threshold APIC interrupts
DFR: 0 0 0 0 0 0 0 0 Deferred Error APIC interrupts
MCE: 0 0 0 0 0 0 0 0 Machine check exceptions
MCP: 3 4 4 4 4 4 4 4 Machine check polls
ERR: 0
MIS: 0
PIN: 0 0 0 0 0 0 0 0 Posted-interrupt notification event
NPI: 0 0 0 0 0 0 0 0 Nested posted-interrupt event
PIW: 0 0 0 0 0 0 0 0 Posted-interrupt wakeup event
Kernel command line: BOOT_IMAGE=/boot/vmlinuz-5.4.106-1-pve root=/dev/mapper/pve-root ro quiet intel_iommu=on iommu=pt irqpoll acpi=debug
root@pve1:~# dmesg |grep error
[ 1.563070] ACPI Error: Aborting method \_SB.PCI0.SAT0.SPT0._GTF due to previous error (AE_NOT_FOUND) (20190816/psparse-531)
[ 1.563792] ACPI Error: Aborting method \_SB.PCI0.SAT0.SPT3._GTF due to previous error (AE_NOT_FOUND) (20190816/psparse-531)
[ 1.564865] ACPI Error: Aborting method \_SB.PCI0.SAT0.SPT5._GTF due to previous error (AE_NOT_FOUND) (20190816/psparse-531)
[ 1.566353] ACPI Error: Aborting method \_SB.PCI0.SAT0.SPT0._GTF due to previous error (AE_NOT_FOUND) (20190816/psparse-531)
[ 1.566453] ACPI Error: Aborting method \_SB.PCI0.SAT0.SPT3._GTF due to previous error (AE_NOT_FOUND) (20190816/psparse-531)
[ 1.568797] ACPI Error: Aborting method \_SB.PCI0.SAT0.SPT5._GTF due to previous error (AE_NOT_FOUND) (20190816/psparse-531)
[ 3.444628] EXT4-fs (dm-1): re-mounted. Opts: errors=remount-ro
root@pve1:~# dmesg | grep 'remapping'
[ 0.214580] DMAR-IR: Queued invalidation will be enabled to support x2apic and Intr-remapping.
[ 0.214963] DMAR-IR: Enabled IRQ remapping in x2apic mode
blacklist:
blacklist ddbridge
blacklist dvb_core
blacklist ngene
blacklist stv090x
blacklist lnbp21
blacklist stv6110x
blacklist ehci_pci
blacklist ehci_hcd
vfio:
options vfio-pci ids=18c3:0720,1103:2640
options vfio_iommu_type1 allow_unsafe_interrupts=1
modules-load:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd
grub cmdline:
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt irqpoll acpi=debug"
Attachments
Last edited: