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
/etc/default/grub
Additional commands executed:
lspci -nnk | grep "Battlemage"
lspci -vvv
/etc/modules-load.d/vfio.conf
lspci -n -s 04:00 -v
find /sys/devices -path "*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
echo 2 > /sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/0000:03:01.0/0000:04:00.0/sriov_numvfs
/sys/devices/pci0000:00/0000:00:06.0/0000:02:00.0/0000:03:01.0/0000:04:00.0# ls
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