[PATCH i-g-t 2/2] tests/intel/xe_pm: Add a check for power management capability
Bernatowicz, Marcin
marcin.bernatowicz at linux.intel.com
Thu Mar 13 10:33:22 UTC 2025
On 3/11/2025 6:01 PM, Jakub Kolakowski wrote:
> Add a check for power management capability of device tested in tests
> related to D-states. Currently if test is started on configuration
> that does not support the PM capability it doesn't skip, instead
> depending on test it may fail, abort or timeout.
> With this change test will skip with a clear message why it did.
>
> Cc: Adam Miszczak <adam.miszczak at linux.intel.com>
> Cc: Lukasz Laguna <lukasz.laguna at intel.com>
> Cc: Marcin Bernatowicz <marcin.bernatowicz at linux.intel.com>
> Signed-off-by: Jakub Kolakowski <jakub1.kolakowski at intel.com>
> ---
> tests/intel/xe_pm.c | 16 ++++++++++++++++
> 1 file changed, 16 insertions(+)
>
> diff --git a/tests/intel/xe_pm.c b/tests/intel/xe_pm.c
> index c2026474d..25fc7bc9f 100644
> --- a/tests/intel/xe_pm.c
> +++ b/tests/intel/xe_pm.c
> @@ -854,6 +854,8 @@ igt_main
>
> for (const struct d_state *d = d_states; d->name; d++) {
> igt_subtest_f("%s-%s-basic-exec", s->name, d->name) {
> + igt_require_f(igt_is_pm_supported(device.pci_root),
> + "PCI power management capability not found\n");
Can we move the check to setup_d3 to avoid duplication ?
> igt_assert(setup_d3(device, d->state));
> test_exec(device, 1, 2, s->state, NO_RPM, 0);
> cleanup_d3(device);
> @@ -870,18 +872,24 @@ igt_main
>
> for (const struct d_state *d = d_states; d->name; d++) {
> igt_subtest_f("%s-basic", d->name) {
> + igt_require_f(igt_is_pm_supported(device.pci_root),
> + "PCI power management capability not found\n");
> igt_assert(setup_d3(device, d->state));
> igt_assert(in_d3(device, d->state));
> cleanup_d3(device);
> }
>
> igt_subtest_f("%s-basic-exec", d->name) {
> + igt_require_f(igt_is_pm_supported(device.pci_root),
> + "PCI power management capability not found\n");
> igt_assert(setup_d3(device, d->state));
> test_exec(device, 1, 1, NO_SUSPEND, d->state, 0);
> cleanup_d3(device);
> }
>
> igt_subtest_f("%s-multiple-execs", d->name) {
> + igt_require_f(igt_is_pm_supported(device.pci_root),
> + "PCI power management capability not found\n");
> igt_assert(setup_d3(device, d->state));
> test_exec(device, 16, 32, NO_SUSPEND, d->state, 0);
> cleanup_d3(device);
> @@ -890,6 +898,8 @@ igt_main
> igt_describe_f("Validate mmap memory mappings with system region,"
> "when device along with parent bridge in %s", d->name);
> igt_subtest_f("%s-mmap-system", d->name) {
> + igt_require_f(igt_is_pm_supported(device.pci_root),
> + "PCI power management capability not found\n");
> igt_assert(setup_d3(device, d->state));
> test_mmap(device, system_memory(device.fd_xe), 0,
> READ, d->state);
> @@ -903,6 +913,8 @@ igt_main
> igt_subtest_f("%s-mmap-vram", d->name) {
> int delay_ms = igt_pm_get_autosuspend_delay(device.pci_xe);
>
> + igt_require_f(igt_is_pm_supported(device.pci_root),
> + "PCI power management capability not found\n");
> /* Give some auto suspend delay to validate rpm active during page fault */
> igt_pm_set_autosuspend_delay(device.pci_xe, 1000);
> igt_assert(setup_d3(device, d->state));
> @@ -919,6 +931,8 @@ igt_main
>
> igt_describe_f("Validate the contents of mocs registers over %s state", d->name);
> igt_subtest_f("%s-mocs", d->name) {
> + igt_require_f(igt_is_pm_supported(device.pci_root),
> + "PCI power management capability not found\n");
> igt_assert(setup_d3(device, d->state));
> test_mocs_suspend_resume(device, NO_SUSPEND, d->state);
> cleanup_d3(device);
> @@ -928,6 +942,8 @@ igt_main
> igt_describe("Validate whether card is limited to d3hot,"
> "if vram used > vram threshold");
> igt_subtest("vram-d3cold-threshold") {
> + igt_require_f(igt_is_pm_supported(device.pci_root),
> + "PCI power management capability not found\n");
> orig_threshold = get_vram_d3cold_threshold(sysfs_fd);
> igt_install_exit_handler(vram_d3cold_threshold_restore);
> test_vram_d3cold_threshold(device, sysfs_fd);
More information about the igt-dev
mailing list