[PATCH i-g-t 00/10] vmtb: Modernize SR-IOV VM Test Bench core

Adam Miszczak
2026-02-24T08:23:06Z

Update and refactor VMTB core implementation, align with the current Xe KMD
SR-IOV state and prepare for a broader test coverage.

Introduced changes:
- refactor driver abstractions into common Driver/PF/VF interfaces,
including updated sysfs/debugfs interfaces
- split VM-side abstractions into VirtualMachine, VirtualDevice and
VfDriver with clearer responsibilities
- add auto/fair provisioning mode next to vGPU profile mode and align
scheduling/resources handling
- support maximum VFs test config
- extend IGT/gem_wsim abstractions (object-oriented result checks,
repeated execution support, resource-based wsim workload descriptors)
- adjust QEMU launch parameters (SSH forwarding, migration capability
handling, disable emulated VGA)
- enable support for Panther Lake (PTL) and Battlemage (BMG) platforms with
PCI Device IDs and vGPU profile resources

Signed-off-by: Adam Miszczak <adam.miszczak@linux.intel.com>
Cc: Marcin Bernatowicz <marcin.bernatowicz@linux.intel.com>
Cc: Kamil Konieczny <kamil.konieczny@linux.intel.com>

Adam Miszczak (10):
tools/vmtb: Update QEMU parameters
tools/vmtb: Fix DUT selection based on card index
tools/vmtb: Fix VM snapshot query handling
tools/vmtb: Extend IGT and WSIM abstractions
tools/vmtb: VF auto/fair provisioning support
tools/vmtb: Refactor driver interfaces
tools/vmtb: Introduce VirtualDevice class
tools/vmtb: Redesign VirtualMachine class
tools/vmtb: Support max VFs configuration
tools/vmtb: Platform enabling: PTL and BMG support

tools/vmtb/bench/configurators/pci.py | 43 ++-
.../vmtb/bench/configurators/vgpu_profile.py | 37 ++-
.../configurators/vgpu_profile_config.py | 7 +-
tools/vmtb/bench/configurators/vmtb_config.py | 4 +-
tools/vmtb/bench/drivers/driver_interface.py | 179 +++++++++---
tools/vmtb/bench/drivers/xe.py | 213 +++++++-------
tools/vmtb/bench/executors/gem_wsim.py | 45 ++-
tools/vmtb/bench/executors/igt.py | 36 ++-
tools/vmtb/bench/machines/device_interface.py | 14 +-
tools/vmtb/bench/machines/host.py | 17 +-
.../vmtb/bench/machines/machine_interface.py | 6 +-
tools/vmtb/bench/machines/physical/device.py | 145 ++++++----
.../machines/virtual/backends/qmp_monitor.py | 25 +-
tools/vmtb/bench/machines/virtual/device.py | 179 ++++++++++++
tools/vmtb/bench/machines/virtual/vm.py | 263 +++++++++---------
tools/vmtb/vmm_flows/conftest.py | 167 ++++++++---
.../{Flex170.json => Bmg_g21_12.json} | 58 ++--
.../resources/vgpu_profiles/Ptl.json | 97 +++++++
tools/vmtb/vmm_flows/test_basic.py | 25 +-
tools/vmtb/vmtb_config.json | 1 +
20 files changed, 1066 insertions(+), 495 deletions(-)
create mode 100644 tools/vmtb/bench/machines/virtual/device.py
rename tools/vmtb/vmm_flows/resources/vgpu_profiles/{Flex170.json => Bmg_g21_12.json} (73%)
create mode 100644 tools/vmtb/vmm_flows/resources/vgpu_profiles/Ptl.json

--
2.39.1