Intel Arc Pro B50 SR-VIO not working

cluelessUser

New Member
May 11, 2026
1
0
1
Hoping a member of the community can assist me with this...
I would like to split the B50 into two cards so I can use them in two different VMs. However, I haven't been able to get it working and I'm bit lost.

Thank you in advance!

Config & Setup:
CPU: Intel Core Ultra 7 270K Plus
Motherboard: MSI Z890 MAG Tomahawk WiFi (Bios: 7E32v1AB1) - SR-VIO & Resizable Bar enabled

uname -a
Bash:
Linux pve-white 7.0.2-2-pve #1 SMP PREEMPT_DYNAMIC PMX 7.0.2-2 (2026-05-08T06:08Z) x86_64 GNU/Linux

/etc/default/grub
Bash:
GRUB_DEFAULT=0
GRUB_TIMEOUT=5
GRUB_DISTRIBUTOR=`( . /etc/os-release && echo ${NAME} )`
GRUB_CMDLINE_LINUX_DEFAULT="quiet intel_iommu=on iommu=pt modprobe.blacklist=xe,i915"
GRUB_CMDLINE_LINUX=""

Additional commands executed:
Bash:
update-grub
update-initramfs -u -k all
echo "options vfio_iommu_type1 allow_unsafe_interrupts=1" > /etc/modprobe.d/iommu_unsafe_interrupts.conf
echo "options kvm ignore_msrs=1" > /etc/modprobe.d/kvm.conf

lspci -nnk | grep "Battlemage"
Bash:
04:00.0 VGA compatible controller [0300]: Intel Corporation Battlemage G21 [Intel Graphics] [8086:e212]

lspci -vvv
Bash:
04: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: 17
    Region 0: Memory at a802000000 (64-bit, prefetchable) [disabled] [size=16M]
    Region 2: Memory at a000000000 (64-bit, prefetchable) [disabled] [size=16G]
    Expansion ROM at 8c000000 [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: 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: 8GB, 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: 2, Total VFs: 2, 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 000000a800000000 (64-bit, prefetchable)
        Region 2: Memory at 000000a400000000 (64-bit, prefetchable)
        VF Migration: offset: 00000000, BIR: 0
    Capabilities: [400 v1] Latency Tolerance Reporting
        Max snoop latency: 15728640ns
        Max no snoop latency: 15728640ns
    Kernel modules: xe

/etc/modules-load.d/vfio.conf
Code:
vfio
vfio_iommu_type1
vfio_pci
vfio_virqfd

lspci -n -s 04:00 -v
Bash:
04:00.0 0300: 8086:e212 (prog-if 00 [VGA controller])
    Subsystem: 8086:1114
    Flags: fast devsel, IOMMU group 17
    Memory at a802000000 (64-bit, prefetchable) [disabled] [size=16M]
    Memory at a000000000 (64-bit, prefetchable) [disabled] [size=16G]
    Expansion ROM at 8c000000 [disabled] [size=2M]
    Capabilities: [40] Vendor Specific Information: Len=0c <?>
    Capabilities: [70] Express Endpoint, IntMsgNum 0
    Capabilities: [ac] MSI: Enable- Count=1/1 Maskable+ 64bit+
    Capabilities: [d0] Power Management version 3
    Capabilities: [100] Alternative Routing-ID Interpretation (ARI)
    Capabilities: [110] Null
    Capabilities: [200] Address Translation Service (ATS)
    Capabilities: [420] Physical Resizable BAR
    Capabilities: [220] Virtual Resizable BAR
    Capabilities: [320] Single Root I/O Virtualization (SR-IOV)
    Capabilities: [400] Latency Tolerance Reporting
    Kernel modules: xe

find /sys/devices -path "*04:00.0*sriov_numvfs"
Code:
/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/0000:03:01.0/0000:04:00.0/sriov_numvfs

cat /sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/0000:03:01.0/0000:04:00.0/sriov_numvfs
Code:
0

echo 2 > /sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/0000:03:01.0/0000:04:00.0/sriov_numvfs
Code:
-bash: echo: write error: No such file or directory

/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/0000:03:01.0/0000:04:00.0# ls
Bash:
aer                       current_link_speed  iommu           max_link_width  rescan        resource2_resize         sriov_stride         uevent
ari_enabled               current_link_width  iommu_group     modalias        reset         resource2_wc             sriov_totalvfs       vendor
boot_vga                  d3cold_allowed      irq             msi_bus         reset_method  revision                 sriov_vf_device
broken_parity_status      device              link            numa_node       resource      rom                      sriov_vf_total_msix
class                     dma_mask_bits       local_cpulist   power           resource0     sriov_drivers_autoprobe  subsystem
config                    driver_override     local_cpus      power_state     resource0_wc  sriov_numvfs             subsystem_device
consistent_dma_mask_bits  enable              max_link_speed  remove          resource2     sriov_offset             subsystem_vendor
 
hi,

first there is an easier way to get to the sysfs path:

/sys/bus/pci/devices/<id>/

so in your case

/sys/bus/pci/devices/0000:04:00.0/

could you try with that path?

Code:
echo 2 > /sys/bus/pci/devices/0000:04:00.0/sriov_numvfs

and if it does not work either, could you check the journal/dmesg for any errors afterwards (or just post it here)