Issues with Intel Arc B50 Pro vGPU SR-IOV (vfio_pci)

sfxdana

New Member
Nov 27, 2025
1
0
1
Runing latest Proxmox 9.1, no-subscription

Dmesg Log:

[Thu Nov 27 14:18:42 2025] vfio-pci 0000:03:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=io+mem:owns=io
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] Running in SR-IOV PF mode
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] Found battlemage (device ID e212) discrete display version 14.01 stepping B0
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] VISIBLE VRAM: 0x0000037400000000, 0x0000000400000000
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] VRAM[0, 0]: Actual physical size 0x0000000400000000, usable size exclude stolen 0x00000003fb000000, CPU accessible size 0x00000003fb000000
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] VRAM[0, 0]: DPA range: [0x0000000000000000-400000000], io range: [0x0000037400000000-377fb000000]
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] Total VRAM: 0x0000037400000000, 0x0000000400000000
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] Available VRAM: 0x0000037400000000, 0x00000003fb000000
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] Finished loading DMC firmware i915/bmg_dmc.bin (v2.6)
[Thu Nov 27 14:18:42 2025] xe 0000:03:00.0: [drm] GT0: Using GuC firmware from xe/bmg_guc_70.bin version 70.49.4
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT0: ccs1 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT0: ccs2 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT0: ccs3 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: Using GuC firmware from xe/bmg_guc_70.bin version 70.49.4
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: Using HuC firmware from xe/bmg_huc.bin version 8.2.10
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: vcs1 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: vcs3 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: vcs4 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: vcs5 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: vcs6 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: vcs7 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: vecs2 fused off
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: vecs3 fused off
[Thu Nov 27 14:18:43 2025] Creating 4 MTD partitions on "xe.nvm.768":
[Thu Nov 27 14:18:43 2025] 0x000000000000-0x000000001000 : "xe.nvm.768.DESCRIPTOR"
[Thu Nov 27 14:18:43 2025] 0x000000001000-0x00000054e000 : "xe.nvm.768.GSC"
[Thu Nov 27 14:18:43 2025] 0x00000054e000-0x00000074e000 : "xe.nvm.768.OptionROM"
[Thu Nov 27 14:18:43 2025] 0x00000074e000-0x00000075e000 : "xe.nvm.768.DAM"
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] Registered 4 planes with drm panic
[Thu Nov 27 14:18:43 2025] [drm] Initialized xe 1.1.0 for 0000:03:00.0 on minor 1
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] Cannot find any crtc or sizes
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] Using mailbox commands for power limits
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] PL2 is supported on channel 0
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] Cannot find any crtc or sizes
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] Cannot find any crtc or sizes
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT0: PF: VF1..VF4 provisioned with 1045172224 (997 MiB) GGTT
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT0: PF: VF1..VF4 provisioned with 4234149888 (3.94 GiB) LMEM
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT0: PF: VF1..VF4 provisioned with 16319 GuC context IDs
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT0: PF: VF1..VF4 provisioned with 64 GuC doorbell IDs
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: PF: VF1..VF4 provisioned with 16319 GuC context IDs
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] GT1: PF: VF1..VF4 provisioned with 64 GuC doorbell IDs
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.1: [8086:e212] type 00 class 0x030000 PCIe Endpoint
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.1: Adding to iommu group 47
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.1: vgaarb: no bridge control possible
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.1: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: vgaarb: VGA decodes changed: olddecodes=io+mem,decodes=none:owns=io
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.2: [8086:e212] type 00 class 0x030000 PCIe Endpoint
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.2: Adding to iommu group 47
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.2: vgaarb: no bridge control possible
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.2: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.3: [8086:e212] type 00 class 0x030000 PCIe Endpoint
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.3: Adding to iommu group 47
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.3: vgaarb: no bridge control possible
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.3: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.4: [8086:e212] type 00 class 0x030000 PCIe Endpoint
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.4: Adding to iommu group 47
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.4: vgaarb: no bridge control possible
[Thu Nov 27 14:18:43 2025] pci 0000:03:00.4: vgaarb: VGA device added: decodes=io+mem,owns=none,locks=none
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: vgaarb: VGA decodes changed: olddecodes=none,decodes=none:owns=io
[Thu Nov 27 14:18:43 2025] xe 0000:03:00.0: [drm] PF: Enabled 4 of 12 VFs

lspci output:
Code:
03:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics]
03:00.1 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics]
03:00.2 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics]
03:00.3 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics]
03:00.4 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics]


I tried a direct PCI mapping to the device, as also the datacenter mapped option. Both with PCIe enabled.

When I start the VM I get the following error message:

Use of uninitialized value $name in concatenation (.) or string at /usr/share/perl5/PVE/SysFSTools.pm line 324.
Use of uninitialized value $name in concatenation (.) or string at /usr/share/perl5/PVE/SysFSTools.pm line 324.
Use of uninitialized value $name in concatenation (.) or string at /usr/share/perl5/PVE/SysFSTools.pm line 324.
Use of uninitialized value $name in concatenation (.) or string at /usr/share/perl5/PVE/SysFSTools.pm line 324.
failed to reset PCI device '0000:03:00.1', but trying to continue as not all devices need a reset
kvm: -device vfio-pci,host=0000:03:00.1,id=hostpci0,bus=ich9-pcie-port-1,addr=0x0: vfio /sys/bus/pci/devices/0000:03:00.1: no such host device: No such file or directory
no PCI device found for '0000:03:00.1'
TASK ERROR: start failed: QEMU exited with code 1

After I start the VM I get the followinf PCI devices:

03:00.0 VGA compatible controller: Intel Corporation Battlemage G21 [Intel Graphics]

lscpi:
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-
IOMMU group: 47
Region 0: Memory at 37e0c000000 (64-bit, prefetchable) [size=16M]
Region 2: Memory at 37400000000 (64-bit, prefetchable) [size=16G]
Expansion ROM at b2a00000 [disabled] [size=2M]
Capabilities: [40] Vendor Specific Information: Len=0c <?>
Capabilities: [70] Express (v2) Endpoint, IntMsgNum 0
Capabilities: [ac] MSI: Enable- Count=1/1 Maskable+ 64bit+
Capabilities: [d0] Power Management version 3
Capabilities: [100 v1] Alternative Routing-ID Interpretation (ARI)
Capabilities: [110 v1] Null
Capabilities: [200 v1] Address Translation Service (ATS)
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: 4GB, supported: 256MB 512MB 1GB 2GB 4GB 8GB 16GB
Capabilities: [320 v1] Single Root I/O Virtualization (SR-IOV)
Capabilities: [400 v1] Latency Tolerance Reporting
Kernel driver in use: vfio-pci <<<=== should be XE, and sub devices should be vfio_pci
Kernel modules: xe


The problem is that it links vfio_pci to the main PCIe device, and not the sub devices.

So vfio_pci is linked against: device 0000:03:00.0, and not 0000:03:00.1/2/3/4 Tried it disables the SR-IOV config, and the sub systems are no longer available.

Created a script to reset the config to get 4 virtual BMG21 devices again:

/usr/local/bin/reset-b50.sh
cd /sys/bus/pci/drivers/
echo 0000:03:00.0 > ./vfio-pci/unbind
echo 0000:03:00.0 > ./xe/bind
echo 0 > /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:01.0/0000:03:00.0/sriov_numvfs
echo 4 > /sys/devices/pci0000:00/0000:00:01.1/0000:01:00.0/0000:02:01.0/0000:03:00.0/sriov_numvfs

What am I missing???
 
Last edited:
HI,

it looks like the issue comes from binding the wrong device, Proxmox is attaching vfio-pci to the PF (03:00.0), which makes the SR‑IOV VFs (03:00.1–.4) vanish.
Try to keep the PF bound to the xe driver and only bind the VFs to vfio-pci, rtemove any global vfio-pci ids=8086:e212 setting, re‑enable SR‑IOV (echo 4 &gt; sriov_numvfs), then override the driver for each VF to vfio-pci.
After that, pass through the VF addresses (not the PF) in your VM config.
See more in PVE Wiki https://pve.proxmox.com/wiki/PCI(e)_Passthrough