[PATCH i-g-t v3 0/4] vmtb: Introduce SR-IOV VM-level testing tool
Adam Miszczak
adam.miszczak at linux.intel.com
Wed Nov 27 10:21:58 UTC 2024
VM Test Bench (VMTB) is a tool for testing virtualization
(SR-IOV) supported by the xe driver.
It allows to enable and provision VFs (Virtual Functions)
and facilitates manipulation of VMs (Virtual Machines)
running virtual GPUs.
Initially only basic test scenarios are provided:
- enable VFs, pass it to VMs and boot guest OS
- submit basic workloads on a guest with virtualized GPU
- exercise VF driver probe and remove
Proposed location for the new tool is the root IGT directory:
igt-gpu-tools/vmtb
but some other options can be also considered, for example:
tools/vmtb
tests/vmtb
v2:
- improve device detection function:
instead of parsing lspci output with regex, iterate over
sysfs driver directory to get bound devices' BDFs (Marcin)
- remove obsolete fixtures and other unused code (Marcin)
v3:
- integrate VMTB with IGT meson build/install system (Kamil)
- move the tool from IGT's root to tools/vmtb subdir (Kamil)
- split VMTB core implementation, tests, resources and meson config
into separate patches (Kamil)
- update readme description for build, install and dependencies
Signed-off-by: Adam Miszczak <adam.miszczak at linux.intel.com>
Cc: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
Cc: Kamil Konieczny <kamil.konieczny at linux.intel.com>
Cc: MichaÅ Wajdeczko <michal.wajdeczko at intel.com>
Cc: PaweÅ Sikora <pawel.sikora at intel.com>
Adam Miszczak (4):
tools/vmtb: VM Test Bench core
tools/vmtb: Basic SR-IOV tests
tools/vmtb: Test resources - vGPU profiles
tools/vmtb: Install VMTB with IGT build system
meson.build | 2 +
meson_options.txt | 5 +
tools/meson.build | 4 +
tools/vmtb/MANIFEST.in | 3 +
tools/vmtb/README.md | 106 +++
tools/vmtb/bench/__init__.py | 43 ++
tools/vmtb/bench/configurators/__init__.py | 0
tools/vmtb/bench/configurators/pci.py | 48 ++
.../vmtb/bench/configurators/vgpu_profile.py | 264 ++++++++
.../configurators/vgpu_profile_config.py | 148 +++++
tools/vmtb/bench/configurators/vmtb_config.py | 110 ++++
tools/vmtb/bench/drivers/__init__.py | 0
tools/vmtb/bench/drivers/driver_interface.py | 198 ++++++
tools/vmtb/bench/drivers/xe.py | 307 +++++++++
tools/vmtb/bench/exceptions.py | 40 ++
tools/vmtb/bench/executors/__init__.py | 0
.../bench/executors/executor_interface.py | 22 +
tools/vmtb/bench/executors/gem_wsim.py | 70 ++
tools/vmtb/bench/executors/igt.py | 117 ++++
tools/vmtb/bench/executors/shell.py | 30 +
tools/vmtb/bench/helpers/__init__.py | 0
tools/vmtb/bench/helpers/helpers.py | 77 +++
tools/vmtb/bench/helpers/log.py | 75 +++
tools/vmtb/bench/machines/__init__.py | 0
tools/vmtb/bench/machines/device_interface.py | 23 +
tools/vmtb/bench/machines/host.py | 196 ++++++
.../vmtb/bench/machines/machine_interface.py | 65 ++
.../vmtb/bench/machines/physical/__init__.py | 0
tools/vmtb/bench/machines/physical/device.py | 240 +++++++
tools/vmtb/bench/machines/virtual/__init__.py | 0
.../machines/virtual/backends/__init__.py | 0
.../virtual/backends/backend_interface.py | 40 ++
.../machines/virtual/backends/guestagent.py | 99 +++
.../machines/virtual/backends/qmp_monitor.py | 161 +++++
tools/vmtb/bench/machines/virtual/vm.py | 604 ++++++++++++++++++
tools/vmtb/dev-requirements.txt | 6 +
tools/vmtb/pyproject.toml | 25 +
tools/vmtb/pytest.ini | 0
tools/vmtb/requirements.txt | 2 +
tools/vmtb/vmm_flows/__init__.py | 0
tools/vmtb/vmm_flows/conftest.py | 307 +++++++++
.../resources/vgpu_profiles/Flex170.json | 113 ++++
tools/vmtb/vmm_flows/test_basic.py | 160 +++++
tools/vmtb/vmtb_config.json | 31 +
44 files changed, 3741 insertions(+)
create mode 100644 tools/vmtb/MANIFEST.in
create mode 100644 tools/vmtb/README.md
create mode 100644 tools/vmtb/bench/__init__.py
create mode 100644 tools/vmtb/bench/configurators/__init__.py
create mode 100644 tools/vmtb/bench/configurators/pci.py
create mode 100644 tools/vmtb/bench/configurators/vgpu_profile.py
create mode 100644 tools/vmtb/bench/configurators/vgpu_profile_config.py
create mode 100644 tools/vmtb/bench/configurators/vmtb_config.py
create mode 100644 tools/vmtb/bench/drivers/__init__.py
create mode 100644 tools/vmtb/bench/drivers/driver_interface.py
create mode 100644 tools/vmtb/bench/drivers/xe.py
create mode 100644 tools/vmtb/bench/exceptions.py
create mode 100644 tools/vmtb/bench/executors/__init__.py
create mode 100644 tools/vmtb/bench/executors/executor_interface.py
create mode 100644 tools/vmtb/bench/executors/gem_wsim.py
create mode 100644 tools/vmtb/bench/executors/igt.py
create mode 100644 tools/vmtb/bench/executors/shell.py
create mode 100644 tools/vmtb/bench/helpers/__init__.py
create mode 100644 tools/vmtb/bench/helpers/helpers.py
create mode 100644 tools/vmtb/bench/helpers/log.py
create mode 100644 tools/vmtb/bench/machines/__init__.py
create mode 100644 tools/vmtb/bench/machines/device_interface.py
create mode 100644 tools/vmtb/bench/machines/host.py
create mode 100644 tools/vmtb/bench/machines/machine_interface.py
create mode 100644 tools/vmtb/bench/machines/physical/__init__.py
create mode 100644 tools/vmtb/bench/machines/physical/device.py
create mode 100644 tools/vmtb/bench/machines/virtual/__init__.py
create mode 100644 tools/vmtb/bench/machines/virtual/backends/__init__.py
create mode 100644 tools/vmtb/bench/machines/virtual/backends/backend_interface.py
create mode 100644 tools/vmtb/bench/machines/virtual/backends/guestagent.py
create mode 100644 tools/vmtb/bench/machines/virtual/backends/qmp_monitor.py
create mode 100644 tools/vmtb/bench/machines/virtual/vm.py
create mode 100644 tools/vmtb/dev-requirements.txt
create mode 100644 tools/vmtb/pyproject.toml
create mode 100644 tools/vmtb/pytest.ini
create mode 100644 tools/vmtb/requirements.txt
create mode 100644 tools/vmtb/vmm_flows/__init__.py
create mode 100644 tools/vmtb/vmm_flows/conftest.py
create mode 100644 tools/vmtb/vmm_flows/resources/vgpu_profiles/Flex170.json
create mode 100644 tools/vmtb/vmm_flows/test_basic.py
create mode 100644 tools/vmtb/vmtb_config.json
--
2.39.1
More information about the igt-dev
mailing list