From: Adam Miszczak <adam.miszczak@linux.intel.com>
To: igt-dev@lists.freedesktop.org
Cc: marcin.bernatowicz@linux.intel.com, kamil.konieczny@linux.intel.com
Subject: [PATCH i-g-t 10/10] tools/vmtb: Platform enabling: PTL and BMG support
Date: Tue, 24 Feb 2026 08:50:27 +0100 [thread overview]
Message-ID: <20260224075027.2409675-11-adam.miszczak@linux.intel.com> (raw)
In-Reply-To: <20260224075027.2409675-1-adam.miszczak@linux.intel.com>
Add PCI Device IDs and example vGPU profiles for
Panther Lake (PTL) and Battlemage (BMG).
Remove unused ATS-M references.
Signed-off-by: Adam Miszczak <adam.miszczak@linux.intel.com>
---
tools/vmtb/bench/configurators/pci.py | 43 +++++---
.../{Flex170.json => Bmg_g21_12.json} | 58 +++++------
.../resources/vgpu_profiles/Ptl.json | 97 +++++++++++++++++++
3 files changed, 154 insertions(+), 44 deletions(-)
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
diff --git a/tools/vmtb/bench/configurators/pci.py b/tools/vmtb/bench/configurators/pci.py
index 8e8afb138..0b524d3c2 100644
--- a/tools/vmtb/bench/configurators/pci.py
+++ b/tools/vmtb/bench/configurators/pci.py
@@ -1,13 +1,13 @@
# SPDX-License-Identifier: MIT
-# Copyright © 2024 Intel Corporation
+# Copyright © 2024-2026 Intel Corporation
import enum
import typing
class GpuModel(str, enum.Enum):
- ATSM150 = 'Arctic Sound M150 (ATS-M1)'
- ATSM75 = 'Arctic Sound M75 (ATS-M3)'
+ PTL = 'Panther Lake (PTL)'
+ BMG = 'Battlemage (BMG)'
Unknown = 'Unknown'
def __str__(self) -> str:
@@ -21,28 +21,41 @@ def get_gpu_model(pci_id: str) -> GpuModel:
def get_vgpu_profiles_file(gpu_model: GpuModel) -> str:
"""Return vGPU profile definition JSON file for a given GPU model."""
- if gpu_model == GpuModel.ATSM150:
- vgpu_device_file = 'Flex170.json'
- elif gpu_model == GpuModel.ATSM75:
- vgpu_device_file = 'Flex140.json'
+ if gpu_model == GpuModel.PTL:
+ vgpu_device_file = 'Ptl.json'
+ elif gpu_model == GpuModel.BMG:
+ vgpu_device_file = 'Bmg_g21_12.json'
else: # GpuModel.Unknown
vgpu_device_file = 'N/A'
return vgpu_device_file
-# PCI Device IDs: ATS-M150 (M1)
-_atsm150_pci_ids = {
- '56C0': GpuModel.ATSM150,
- '56C2': GpuModel.ATSM150
+# PCI Device IDs: PTL
+_ptl_pci_ids = {
+ 'B080': GpuModel.PTL,
+ 'B081': GpuModel.PTL,
+ 'B082': GpuModel.PTL,
+ 'B083': GpuModel.PTL,
+ 'B084': GpuModel.PTL,
+ 'B085': GpuModel.PTL,
+ 'B086': GpuModel.PTL,
+ 'B087': GpuModel.PTL,
+ 'B08F': GpuModel.PTL,
+ 'B090': GpuModel.PTL,
+ 'B0A0': GpuModel.PTL,
+ 'B0B0': GpuModel.PTL,
+ 'FD80': GpuModel.PTL,
+ 'FD81': GpuModel.PTL
}
-# PCI Device IDs: ATS-M75 (M3)
-_atsm75_pci_ids = {
- '56C1': GpuModel.ATSM75
+# PCI Device IDs: BMG (G21 - VRAM: 12GB / other)
+_bmg_pci_ids = {
+ 'E20B': GpuModel.BMG # B36 / 12GB
}
# All PCI Device IDs to GPU Device Names mapping
-pci_ids: typing.Dict[str, GpuModel] = {**_atsm150_pci_ids, **_atsm75_pci_ids}
+pci_ids: typing.Dict[str, GpuModel] = {**_ptl_pci_ids,
+ **_bmg_pci_ids}
diff --git a/tools/vmtb/vmm_flows/resources/vgpu_profiles/Flex170.json b/tools/vmtb/vmm_flows/resources/vgpu_profiles/Bmg_g21_12.json
similarity index 73%
rename from tools/vmtb/vmm_flows/resources/vgpu_profiles/Flex170.json
rename to tools/vmtb/vmm_flows/resources/vgpu_profiles/Bmg_g21_12.json
index ff1fa7e20..75ca907ab 100644
--- a/tools/vmtb/vmm_flows/resources/vgpu_profiles/Flex170.json
+++ b/tools/vmtb/vmm_flows/resources/vgpu_profiles/Bmg_g21_12.json
@@ -1,58 +1,58 @@
{
- "version": "1.1",
+ "version": "1.2",
"PFResources": {
"Default": "MinimumPFResources",
"Profile": {
"MinimumPFResources": {
- "LocalMemoryEccOn": 402653184,
- "LocalMemoryEccOff": 402653184,
- "Contexts": 1024,
+ "LocalMemoryEccOn": 134217728,
+ "LocalMemoryEccOff": 134217728,
+ "Contexts": 256,
"Doorbells": 16,
- "GGTTSize": 268435456
+ "GGTTSize": 67108864
}
}
},
"vGPUResources": {
"Default": null,
"Profile": {
- "Flex170_16": {
+ "Bmg_12": {
"VFCount": 1,
- "LocalMemoryEccOff": 16777216000,
- "LocalMemoryEccOn": 2147483648,
+ "LocalMemoryEccOff": 12717129728,
+ "LocalMemoryEccOn": 12717129728,
"Contexts": 1024,
"Doorbells": 240,
"GGTTSize": 4026531840
},
- "Flex170_8": {
+ "Bmg_6": {
"VFCount": 2,
- "LocalMemoryEccOff": 8388608000,
- "LocalMemoryEccOn": 2147483648,
+ "LocalMemoryEccOff": 6341787648,
+ "LocalMemoryEccOn": 6341787648,
"Contexts": 1024,
"Doorbells": 120,
"GGTTSize": 2013265920
},
- "Flex170_4": {
- "VFCount": 4,
- "LocalMemoryEccOff": 4194304000,
- "LocalMemoryEccOn": 2147483648,
+ "Bmg_4": {
+ "VFCount": 3,
+ "LocalMemoryEccOff": 4211081216,
+ "LocalMemoryEccOn": 4211081216,
"Contexts": 1024,
- "Doorbells": 60,
- "GGTTSize": 1006632960
+ "Doorbells": 80,
+ "GGTTSize": 1342177280
},
- "Flex170_2": {
- "VFCount": 8,
- "LocalMemoryEccOff": 2097152000,
- "LocalMemoryEccOn": 1073741824,
+ "Bmg_2": {
+ "VFCount": 6,
+ "LocalMemoryEccOff": 2080374784,
+ "LocalMemoryEccOn": 2080374784,
"Contexts": 1024,
- "Doorbells": 30,
- "GGTTSize": 503316480
+ "Doorbells": 40,
+ "GGTTSize": 671088640
},
- "Flex170_1": {
- "VFCount": 16,
- "LocalMemoryEccOff": 1048576000,
- "LocalMemoryEccOn": 536870912,
+ "Bmg_1": {
+ "VFCount": 12,
+ "LocalMemoryEccOff": 1023410176,
+ "LocalMemoryEccOn": 1023410176,
"Contexts": 1024,
- "Doorbells": 15,
+ "Doorbells": 20,
"GGTTSize": 251658240
}
}
@@ -110,4 +110,4 @@
}
}
}
-}
\ No newline at end of file
+}
diff --git a/tools/vmtb/vmm_flows/resources/vgpu_profiles/Ptl.json b/tools/vmtb/vmm_flows/resources/vgpu_profiles/Ptl.json
new file mode 100644
index 000000000..efc61bce1
--- /dev/null
+++ b/tools/vmtb/vmm_flows/resources/vgpu_profiles/Ptl.json
@@ -0,0 +1,97 @@
+{
+ "version": "0.1",
+ "PFResources": {
+ "Default": "MinimumPFResources",
+ "Profile": {
+ "MinimumPFResources": {
+ "LocalMemoryEccOn": 0,
+ "LocalMemoryEccOff": 0,
+ "Contexts": 256,
+ "Doorbells": 16,
+ "GGTTSize": 67108864
+ }
+ }
+ },
+ "vGPUResources": {
+ "Default": null,
+ "Profile": {
+ "Ptl_1": {
+ "VFCount": 1,
+ "LocalMemoryEccOff": 0,
+ "LocalMemoryEccOn": 0,
+ "Contexts": 1024,
+ "Doorbells": 240,
+ "GGTTSize": 4026531840
+ },
+ "Ptl_2": {
+ "VFCount": 2,
+ "LocalMemoryEccOff": 0,
+ "LocalMemoryEccOn": 0,
+ "Contexts": 1024,
+ "Doorbells": 120,
+ "GGTTSize": 2013265920
+ },
+ "Ptl_4": {
+ "VFCount": 4,
+ "LocalMemoryEccOff": 0,
+ "LocalMemoryEccOn": 0,
+ "Contexts": 1024,
+ "Doorbells": 60,
+ "GGTTSize": 1006632960
+ }
+ }
+ },
+ "vGPUScheduler": {
+ "Default": "Flexible_30fps_GPUTimeSlicing",
+ "Profile": {
+ "Flexible_30fps_GPUTimeSlicing": {
+ "GPUTimeSlicing": {
+ "ScheduleIfIdle": false,
+ "PFExecutionQuantum": 20,
+ "PFPreemptionTimeout": 20000,
+ "VFAttributes": {
+ "VFExecutionQuantum": "lambda VFCount : max( 32 // VFCount, 1)",
+ "VFPreemptionTimeout": "lambda VFCount : 128000 if (VFCount == 1) else max( 64000 // VFCount, 16000)"
+ }
+ }
+ },
+ "Fixed_30fps_GPUTimeSlicing": {
+ "GPUTimeSlicing": {
+ "ScheduleIfIdle": true,
+ "PFExecutionQuantum": 20,
+ "PFPreemptionTimeout": 20000,
+ "VFAttributes": {
+ "VFExecutionQuantum": "lambda VFCount : max( 32 // VFCount, 1)",
+ "VFPreemptionTimeout": "lambda VFCount : 128000 if (VFCount == 1) else max( 64000 // VFCount, 16000)"
+ }
+ }
+ },
+ "Flexible_BurstableQoS_GPUTimeSlicing": {
+ "GPUTimeSlicing": {
+ "ScheduleIfIdle": false,
+ "PFExecutionQuantum": 20,
+ "PFPreemptionTimeout": 20000,
+ "VFAttributes": {
+ "VFExecutionQuantum": "lambda VFCount : min((2000 // max(VFCount-1,1)*0.5, 50))",
+ "VFPreemptionTimeout": "lambda VFCount : (2000 // max(VFCount-1,1) - min((2000 // max(VFCount-1,1))*0.5, 50))*1000"
+ }
+ }
+ }
+ }
+ },
+ "vGPUSecurity": {
+ "Default": "Disabled",
+ "Profile": {
+ "Disabled": {
+ "ResetAfterVfSwitch": false,
+ "GuCSamplingPeriod": 0,
+ "GuCThresholdCATError": 0,
+ "GuCThresholdPageFault": 0,
+ "GuCThresholdH2GStorm": 0,
+ "GuCThresholdDbStorm": 0,
+ "GuCThresholdGTIrqStorm": 0,
+ "GuCThresholdEngineReset": 0
+ }
+ }
+ }
+}
\ No newline at end of file
--
2.39.1
next prev parent reply other threads:[~2026-02-24 8:25 UTC|newest]
Thread overview: 25+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-02-24 7:50 [PATCH i-g-t 00/10] vmtb: Modernize SR-IOV VM Test Bench core Adam Miszczak
2026-02-24 7:50 ` [PATCH i-g-t 01/10] tools/vmtb: Update QEMU parameters Adam Miszczak
2026-03-10 10:22 ` Bernatowicz, Marcin
2026-02-24 7:50 ` [PATCH i-g-t 02/10] tools/vmtb: Fix DUT selection based on card index Adam Miszczak
2026-03-10 10:26 ` Bernatowicz, Marcin
2026-02-24 7:50 ` [PATCH i-g-t 03/10] tools/vmtb: Fix VM snapshot query handling Adam Miszczak
2026-03-10 10:29 ` Bernatowicz, Marcin
2026-02-24 7:50 ` [PATCH i-g-t 04/10] tools/vmtb: Extend IGT and WSIM abstractions Adam Miszczak
2026-03-10 10:36 ` Bernatowicz, Marcin
2026-02-24 7:50 ` [PATCH i-g-t 05/10] tools/vmtb: VF auto/fair provisioning support Adam Miszczak
2026-03-10 10:38 ` Bernatowicz, Marcin
2026-02-24 7:50 ` [PATCH i-g-t 06/10] tools/vmtb: Refactor driver interfaces Adam Miszczak
2026-03-10 10:43 ` Bernatowicz, Marcin
2026-02-24 7:50 ` [PATCH i-g-t 07/10] tools/vmtb: Introduce VirtualDevice class Adam Miszczak
2026-03-10 10:45 ` Bernatowicz, Marcin
2026-02-24 7:50 ` [PATCH i-g-t 08/10] tools/vmtb: Redesign VirtualMachine class Adam Miszczak
2026-03-10 10:47 ` Bernatowicz, Marcin
2026-02-24 7:50 ` [PATCH i-g-t 09/10] tools/vmtb: Support max VFs configuration Adam Miszczak
2026-03-10 10:52 ` Bernatowicz, Marcin
2026-02-24 7:50 ` Adam Miszczak [this message]
2026-03-10 10:52 ` [PATCH i-g-t 10/10] tools/vmtb: Platform enabling: PTL and BMG support Bernatowicz, Marcin
2026-02-24 11:49 ` ✓ Xe.CI.BAT: success for vmtb: Modernize SR-IOV VM Test Bench core Patchwork
2026-02-24 12:43 ` ✓ i915.CI.BAT: " Patchwork
2026-02-24 16:27 ` ✗ i915.CI.Full: failure " Patchwork
2026-02-24 20:21 ` ✗ Xe.CI.FULL: " Patchwork
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20260224075027.2409675-11-adam.miszczak@linux.intel.com \
--to=adam.miszczak@linux.intel.com \
--cc=igt-dev@lists.freedesktop.org \
--cc=kamil.konieczny@linux.intel.com \
--cc=marcin.bernatowicz@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox