Proxmox 9.0 + Intel B50 SR-IOV -- finally its almost here! Early Adopter's Guide

for anyone trying to get a Linux VM working - Ubuntu 25.10 with Kernel 6.17.0-5-generic x86_64 did the trick for me. Before (6.14), xe driver wouldn’t initialize, because it apparently didn’t support running a SR-IOV virtual function yet (no PCODE on VFs):

[  330.369604] xe 0000:01:00.0: [drm] *ERROR* PCODE initialization timedout after: 3 min
[  330.369624] xe 0000:01:00.0: probe with driver xe failed with error -110
1 Like


w00h00! This takes like 10 minutes to setup w/ the new opt-in kernel. (After updating the firmware)

how did you patch your bios? i thought there’s signatures and stuff on modern BIOSes

Small update.
I’ve run valley benchmark overnight on non-SR-IOV passthrough VM and there were no issues. It’s stable in basic passthrough.

My motherboard has some ASPM settings but disabling them don’t change how linux sees ASPM state on the gpu and it’s root port. It’s probably working because it helps with fan behaviour.

Manually disabling ASPM while ASPM is disabled in the bios doesn’t help further. Enabling ASPM in the bios and disabling it linux with setpci doesn’t help with fan. It’s strange.

Superposition may be slightly more stable with ASPM disabled in bios but I still cannot finish 2 running on different VMs at the same time.

With ASPM disabled fan behaves better. No max fan GPU with idling gpu.

sensors output during blender benchmark:

xe-pci-0300
Adapter: PCI adapter
fan1:        3005 RPM
pkg:          +68.0°C
vram:         +70.0°C
card:             N/A  (crit =   0.00 W, cap =  70.00 W)
card:        125.58 kJ
pkg:          91.13 kJ

One more interesting issue I’ve encountered. Running oneAPI blender render in first VM completely crashes apollo/moonlight remote desktop for 2nd VM. )sometimes it can crash whole VM) Game/bencmark crashes never cause issues this bad.
(it was always the case on my test setup, with or without ASPM)

I followed the steps from, GitHub - xCuri0/ReBarUEFI: Resizable BAR for (almost) any UEFI system and, Adding FFS module · xCuri0/ReBarUEFI Wiki · GitHub to patch/add the 4.7 bios and then used the IPMI web interface to perform the bios update. For these series of boards I didn’t encounter any requirement for a signed bios.

To enable IPMI bios updates, many moons ago, I needed a license key and followed this guide to create one, Reverse Engineering Supermicro IPMI – peterkleissner.com

Cheers

3 Likes

Im having trouble getting this working

AMD EPYC rome 7232P
tyan 8030
proxmox 9, kernel 6.14

I have the strongz running on an intel system fine. I pulled the latest version of it to set up on this proxmox system with a b50, following their xe instructions. I think something is wrong though.

the B50 is 43:00.0
in devices though it buried here
/sys/devices/pci0000:40/0000:40:03.1/0000:41:00.0/0000:42:01.0/0000:43:00.0

this seems far too long an address but that is where it is. is this maybe an iommu issue?

here are the other pcie devices in that range

41:00.0 PCI bridge: Intel Corporation Device e2ff (rev 01)
42:01.0 PCI bridge: Intel Corporation Device e2f0
42:02.0 PCI bridge: Intel Corporation Device e2f1
43:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics]
44:00.0 Audio device: Intel Corporation Device e2f7
lspci -vvv -s 43:00
43:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics] (prog-if 00 [VGA controller])
        Subsystem: Intel Corporation Device 1114
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin ? routed to IRQ 135
        IOMMU group: 28
        Region 0: Memory at b2000000 (64-bit, non-prefetchable) [size=16M]
        Region 2: Memory at 20030000000 (64-bit, prefetchable) [size=256M]
        Expansion ROM at b3000000 [disabled] [size=2M]
        Capabilities: [40] Vendor Specific Information: Len=0c <?>
        Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
                DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W TEE-IO-
                DevCtl: CorrErr+ NonFatalErr+ FatalErr+ UnsupReq-
                        RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
                        MaxPayload 256 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1
                        TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
                         10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
                         AtomicOpsCtl: ReqEn-
                         IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq-
                         10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
                LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
                         EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit+
                Address: 00000000fee00000  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [d0] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
                ARICap: MFVC- ACS-, Next Function: 0
                ARICtl: MFVC- ACS-, Function Group: 0
        Capabilities: [110 v1] Null
        Capabilities: [200 v1] Address Translation Service (ATS)
                ATSCap: Invalidate Queue Depth: 00
                ATSCtl: Enable+, Smallest Translation Unit: 00
        Capabilities: [420 v1] Physical Resizable BAR
                BAR 2: current size: 256MB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
        Capabilities: [400 v1] Latency Tolerance Reporting
                Max snoop latency: 0ns
                Max no snoop latency: 0ns
        Kernel driver in use: xe
        Kernel modules: xe

for upgrading the proxmox 9 6.14 kernel to 6.17; is the following correct for installing from the links in the op.
these do upgrade the system to 6.17, it does boot, iommu is enabled, sriov is enabled in the bios
but i still do get vfs listed under lspci -vvv

apt install libpfm4 libcapstone5 #needed for linux tools

dpkg -i linux-tools-6.17_6.17.1-6.6_amd64.deb  proxmox-headers-6.17.1-6.6-pve_6.17.1-6.6_amd64.deb proxmox-headers-6.17_6.17.1-6.6_all.deb proxmox-kernel-6.17.1-6.6-pve_6.17.1-6.6_amd64.deb proxmox-kernel-libc-dev_6.17.1-6.6_amd64.deb pve-firmware_3.19_all.deb

from what I can see I dont have resize able bar enables, but my bios does not have an option for one. below is my lspci output, the second one has only 256M, the OP has 16GB.

        Region 0: Memory at b2000000 (64-bit, non-prefetchable) [size=16M]
        Region 2: Memory at 20030000000 (64-bit, prefetchable) [size=256M]

I had a lot of trouble with both xe and strongtz which is why I went with “intel supported” i915, and warned off of the xe driver… for now… until things stablize. Also the github issue on the strongtz repo where they seem not to want to support sr-iov for xe was…worrying. So I didn’t do that for now.
Maybe back out of all that and try the out-of-tree i915 driver?

1 Like

I’m having the exact same issue as you are and I’m almost certain it has to do with ReBAR support.

I’m using a EPYC 7302P and also a Tyan S8030 on the latest BIOS version. I’m on Proxmox 9 running kernel version 6.17.

I stood up another server and installed the latest firmware on bare-metal for the B50 and it works just fine(Running LLMs) since that server has a BIOS toggle for ReBAR support.

I emailed Tyan and they said ReBAR support is enabled by default and there isn’t a toggle for it in the BIOS. I responded by saying ReBAR isn’t working as I came to the same conclusion as you did in regards to seeing only 256M instead of the full 16GB.

I asked if they can provide me a beta BIOS that allows us to toggle the feature ON/OFF or if there’s a fix for it and they said the motherboard is EOL and it will not receive further updates.

1 Like

I have AMD Ryzen Threadripper PRO 7975WX in HP motherboard (Z6 G5A).
Just add Intel ARC B50. I added pve-test repo and made upgrade to “Linux hpws 6.17.2-1-pve #1 SMP PREEMPT_DYNAMIC PMX 6.17.2-1 (2025-10-21T11:55Z) x86_64 GNU/Linux” with headers and firmware.

The I insert B50, but enumeration was without SR-VIO.

root@hpws:~# lspci -vvv -s 43:00.0
43:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics] (prog-if 00 [VGA controller])
	Subsystem: Intel Corporation Device 1114
	Control: I/O+ Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	Latency: 0
	Interrupt: pin ? routed to IRQ 200
	IOMMU group: 52
	Region 0: Memory at 80000000 (64-bit, non-prefetchable) [size=16M]
	Region 2: Memory at 11400000000 (64-bit, prefetchable) [size=16G]
	Expansion ROM at <ignored> [disabled]
	Capabilities: [40] Vendor Specific Information: Len=0c <?>
	Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W TEE-IO-
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq-
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1
			TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
			 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
			 AtomicOpsCap: 32bit- 64bit- 128bitCAS-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
			 AtomicOpsCtl: ReqEn-
			 IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq-
			 10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
		LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit+
		Address: 00000000fee00000  Data: 0000
		Masking: 00000000  Pending: 00000000
	Capabilities: [d0] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
		Status: D3 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
		ARICap:	MFVC- ACS-, Next Function: 0
		ARICtl:	MFVC- ACS-, Function Group: 0
	Capabilities: [110 v1] Null
	Capabilities: [200 v1] Address Translation Service (ATS)
		ATSCap:	Invalidate Queue Depth: 00
		ATSCtl:	Enable+, Smallest Translation Unit: 00
	Capabilities: [420 v1] Physical Resizable BAR
		BAR 2: current size: 16GB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
	Capabilities: [400 v1] Latency Tolerance Reporting
		Max snoop latency: 0ns
		Max no snoop latency: 0ns
	Kernel driver in use: xe
	Kernel modules: xe

Then I just boot-up windows (from my secondary drive), and install latest drivers for B50. I install it till no more offers for upgrade something for it.

Then, I just reboot back to Proxmox, and got SR-VIO caps.

root@hpws:/sys/devices/pci0000:40/0000:40:03.1/0000:41:00.0/0000:42:01.0/0000:43:00.0# lspci -s 0000:43:00.0 -vvv
43:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics] (prog-if 00 [VGA controller])
	Subsystem: Intel Corporation Device 1114
	Control: I/O+ Mem+ BusMaster- SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
	Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
	IOMMU group: 52
	Expansion ROM at 80000000 [disabled] [size=2M]
	Capabilities: [40] Vendor Specific Information: Len=0c <?>
	Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
		DevCap:	MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
			ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W TEE-IO-
		DevCtl:	CorrErr+ NonFatalErr+ FatalErr+ UnsupReq-
			RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
			MaxPayload 256 bytes, MaxReadReq 512 bytes
		DevSta:	CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
		LnkCap:	Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
			ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
		LnkCtl:	ASPM Disabled; RCB 64 bytes, LnkDisable- CommClk-
			ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
		LnkSta:	Speed 2.5GT/s, Width x1
			TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
		DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
			 10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix-
			 EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
			 FRS- TPHComp- ExtTPHComp-
		DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
			 AtomicOpsCtl: ReqEn-
			 IDOReq- IDOCompl- LTR- EmergencyPowerReductionReq-
			 10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
		LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
		LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
			 Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
			 Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
		LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
			 EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
			 Retimer- 2Retimers- CrosslinkRes: unsupported
	Capabilities: [ac] MSI: Enable- Count=1/1 Maskable+ 64bit+
		Address: 0000000000000000  Data: 0000
		Masking: 00000000  Pending: 00000000
	Capabilities: [d0] Power Management version 3
		Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
		Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
	Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
		ARICap:	MFVC- ACS-, Next Function: 0
		ARICtl:	MFVC- ACS-, Function Group: 0
	Capabilities: [110 v1] Null
	Capabilities: [200 v1] Address Translation Service (ATS)
		ATSCap:	Invalidate Queue Depth: 00
		ATSCtl:	Enable+, Smallest Translation Unit: 00
	Capabilities: [420 v1] Physical Resizable BAR
		BAR 2: current size: 16GB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
	Capabilities: [220 v1] Virtual Resizable BAR
		BAR 2: current size: 2GB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
	Capabilities: [320 v1] Single Root I/O Virtualization (SR-IOV)
		IOVCap:	Migration- 10BitTagReq+ IntMsgNum 0
		IOVCtl:	Enable- Migration- Interrupt- MSE- ARIHierarchy+ 10BitTagReq-
		IOVSta:	Migration-
		Initial VFs: 12, Total VFs: 12, Number of VFs: 0, Function Dependency Link: 00
		VF offset: 1, stride: 1, Device ID: e212
		Supported Page Size: 00000553, System Page Size: 00000001
		Region 0: Memory at 0000000000000000 (64-bit, prefetchable)
		Region 2: Memory at 0000000000000000 (64-bit, prefetchable)
		VF Migration: offset: 00000000, BIR: 0
	Capabilities: [400 v1] Latency Tolerance Reporting
		Max snoop latency: 0ns
		Max no snoop latency: 0ns
	Kernel modules: xe

unfortunately stuck at this point


root@hpws:/sys/devices/pci0000:40/0000:40:03.1/0000:41:00.0/0000:42:01.0/0000:43:00.0#

root@hpws:/sys/devices/pci0000:40/0000:40:03.1/0000:41:00.0/0000:42:01.0/0000:43:00.0# cat sriov_totalvfs

12

root@hpws:/sys/devices/pci0000:40/0000:40:03.1/0000:41:00.0/0000:42:01.0/0000:43:00.0# cat sriov_numvfs

0

root@hpws:/sys/devices/pci0000:40/0000:40:03.1/0000:41:00.0/0000:42:01.0/0000:43:00.0# echo 4 > sriov_numvfs

-bash: echo: write error: No such file or directory

root@hpws:/sys/devices/pci0000:40/0000:40:03.1/0000:41:00.0/0000:42:01.0/0000:43:00.0#

dmesg

> [  206.847674] pci 0000:43:00.0: no driver bound to device; cannot configure SR-IOV
> [ 1020.141614] pci 0000:43:00.0: no driver bound to device; cannot configure SR-IOV

will happy get some help

kernel driver in use: xe

…didn’t follow the guide?

xe.vfs_max=7 could try adding that to the ker el boot parameter to see if the VFs show up later?

“Todd Howard just buy a better computer.”

I wonder if there are sp3 mobos with sizable bar support. i have a modern LGA1700 mobo and cpu on hand, so I think to night I will try to test on that. Ill see if it works with the px9 6.14 to 6.17 upgrade.

so I switched to a consumer LGA1700 system I have. still not working. I enabled SRIOV and Resizable BAR from the bios. does anyone know how to validate the version of the xe driver being used?

  • clean px 9, 6.14 install
  • from the links in op i installed
apt install libpfm4 libcapstone5
dpkg -i linux-tools-6.17_6.17.1-6.6_amd64.deb  proxmox-headers-6.17.1-6.6-pve_6.17.1-6.6_amd64.deb proxmox-headers-6.17_6.17.1-6.6_all.deb proxmox-kernel-6.17.1-6.6-pve_6.17.1-6.6_amd64.deb proxmox-kernel-libc-dev_6.17.1-6.6_amd64.deb pve-firmware_3.19_all.deb

what I have in /etc/defualt/grub:

GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on xe.vfs_max=7"

current uname -a

Linux pve 6.17.1-6.6-pve #1 SMP PREEMPT_DYNAMIC PMX 6.17.1-6.6 (2025-10-08T10:04Z) x86_64 GNU/Linux

this is what I have on lspci. everything except “Capabilities: [320 v1] Single Root I/O Virtualization (SR-IOV)”

03:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics] (prog-if 00 [VGA controller])
        Subsystem: Intel Corporation Device 1114
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap+ 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0, Cache Line Size: 64 bytes
        Interrupt: pin ? routed to IRQ 157
        IOMMU group: 15
        Region 0: Memory at 81000000 (64-bit, non-prefetchable) [size=16M]
        Region 2: Memory at 6000000000 (64-bit, prefetchable) [size=16G]
        Expansion ROM at 82000000 [disabled] [size=2M]
        Capabilities: [40] Vendor Specific Information: Len=0c <?>
        Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
                DevCap: MaxPayload 256 bytes, PhantFunc 0, Latency L0s unlimited, L1 unlimited
                        ExtTag+ AttnBtn- AttnInd- PwrInd- RBE+ FLReset+ SlotPowerLimit 0W TEE-IO-
                DevCtl: CorrErr- NonFatalErr- FatalErr- UnsupReq-
                        RlxdOrd+ ExtTag+ PhantFunc- AuxPwr- NoSnoop+ FLReset-
                        MaxPayload 256 bytes, MaxReadReq 512 bytes
                DevSta: CorrErr- NonFatalErr- FatalErr- UnsupReq- AuxPwr- TransPend-
                LnkCap: Port #0, Speed 2.5GT/s, Width x1, ASPM L0s L1, Exit Latency L0s <64ns, L1 <1us
                        ClockPM- Surprise- LLActRep- BwNot- ASPMOptComp+
                LnkCtl: ASPM L1 Enabled; RCB 64 bytes, LnkDisable- CommClk-
                        ExtSynch- ClockPM- AutWidDis- BWInt- AutBWInt-
                LnkSta: Speed 2.5GT/s, Width x1
                        TrErr- Train- SlotClk- DLActive- BWMgmt- ABWMgmt-
                DevCap2: Completion Timeout: Range B, TimeoutDis+ NROPrPrP- LTR+
                         10BitTagComp+ 10BitTagReq+ OBFF Not Supported, ExtFmt+ EETLPPrefix-
                         EmergencyPowerReduction Not Supported, EmergencyPowerReductionInit-
                         FRS- TPHComp- ExtTPHComp-
                         AtomicOpsCap: 32bit- 64bit- 128bitCAS-
                DevCtl2: Completion Timeout: 50us to 50ms, TimeoutDis-
                         AtomicOpsCtl: ReqEn-
                         IDOReq- IDOCompl- LTR+ EmergencyPowerReductionReq-
                         10BitTagReq- OBFF Disabled, EETLPPrefixBlk-
                LnkCap2: Supported Link Speeds: 2.5GT/s, Crosslink- Retimer- 2Retimers- DRS-
                LnkCtl2: Target Link Speed: 2.5GT/s, EnterCompliance- SpeedDis-
                         Transmit Margin: Normal Operating Range, EnterModifiedCompliance- ComplianceSOS-
                         Compliance Preset/De-emphasis: -6dB de-emphasis, 0dB preshoot
                LnkSta2: Current De-emphasis Level: -6dB, EqualizationComplete- EqualizationPhase1-
                         EqualizationPhase2- EqualizationPhase3- LinkEqualizationRequest-
                         Retimer- 2Retimers- CrosslinkRes: unsupported
        Capabilities: [ac] MSI: Enable+ Count=1/1 Maskable+ 64bit+
                Address: 00000000fee00678  Data: 0000
                Masking: 00000000  Pending: 00000000
        Capabilities: [d0] Power Management version 3
                Flags: PMEClk- DSI- D1- D2- AuxCurrent=0mA PME(D0+,D1-,D2-,D3hot+,D3cold-)
                Status: D0 NoSoftRst+ PME-Enable- DSel=0 DScale=0 PME-
        Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
                ARICap: MFVC- ACS-, Next Function: 0
                ARICtl: MFVC- ACS-, Function Group: 0
        Capabilities: [110 v1] Null
        Capabilities: [200 v1] Address Translation Service (ATS)
                ATSCap: Invalidate Queue Depth: 00
                ATSCtl: Enable-, Smallest Translation Unit: 00
        Capabilities: [420 v1] Physical Resizable BAR
                BAR 2: current size: 16GB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
        Capabilities: [400 v1] Latency Tolerance Reporting
                Max snoop latency: 15728640ns
                Max no snoop latency: 15728640ns
        Kernel driver in use: xe
        Kernel modules: xe

ASRockRack ROMED8-2T has it. I have one.

let me know if it works. I might need to go get one.

I already had it working with a B50. Check my posts in the other thread. Still have to test it more, but did get SR-IOV in a VM with RDP

1 Like

Thing to check, if you use it with passthrough first, reboot your host before trying sriov

you keep saying xe driver. the guide is talking about xe not being ready. we blacklist xe driver. maybe start with the kernel version and driver that works to validate then experiment with xe driver?

Wendell, for my understanding: if blacklisting the xe driver and not attaching it to linux, how does that work with sr-iov in comparison to passthrough?

A long time ago I toyed around with a Grid K2 and you had to have the host and vm driver talking to each other. Is the Intel way different?

Edit: that was on VMware, not Proxmox

im following your guide with the first few steps. it shows the lspci below after the kernel update to 6.17; which im trying to match. you black list xe later down, should I be doing that sooner?

im just trying to get the “Capabilities: [320 v1] Single Root I/O Virtualization (SR-IOV)” part working. I have a slightly different kernel version from the guide because the linked github moved its release page.

right now my guess is im missing some firmware on the card itself and im trying to track down how to install/update it. from what im reading in another thread, using a windows machine seems to be the easiest route to update the card then drop it back in the Linux system.

        Capabilities: [320 v1] Single Root I/O Virtualization (SR-IOV)
                IOVCap: Migration- 10BitTagReq+ IntMsgNum 0
                IOVCtl: Enable- Migration- Interrupt- MSE- ARIHierarchy+ 10BitTagReq-
                IOVSta: Migration-
                Initial VFs: 12, Total VFs: 12, Number of VFs: 0, Function Dependency Link: 00
                VF offset: 1, stride: 1, Device ID: e212
                Supported Page Size: 00000553, System Page Size: 00000001
                Region 0: Memory at 0000001a01000000 (64-bit, prefetchable)
                Region 2: Memory at 0000002000000000 (64-bit, prefetchable)
                VF Migration: offset: 00000000, BIR: 0
        Capabilities: [400 v1] Latency Tolerance Reporting
                Max snoop latency: 1048576ns
                Max no snoop latency: 1048576ns
        Kernel driver in use: xe
        Kernel modules: xe