[igt-dev] [PATCH i-g-t] i915/kms_busy: reduce heartbeat intervals only if neccessary

Andrzej Hajda andrzej.hajda at intel.com
Tue Jun 13 19:52:41 UTC 2023


Reducing heartbeat intervals may downgrade individual engine resets
to full GPU resets. The latter is not desirable, especially
on simulations, which do not support GPU reset. Only tests with
reset flag enabled need reduced hearbeat intervals.

Signed-off-by: Andrzej Hajda <andrzej.hajda at intel.com>
---
 tests/i915/kms_busy.c | 19 ++++++++++++-------
 1 file changed, 12 insertions(+), 7 deletions(-)

diff --git a/tests/i915/kms_busy.c b/tests/i915/kms_busy.c
index 20d3058fb6f..ccabc38fd3f 100644
--- a/tests/i915/kms_busy.c
+++ b/tests/i915/kms_busy.c
@@ -390,8 +390,6 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		{ "extended-modeset-hang-oldfb-with-reset", true, false, true },
 		{ "extended-modeset-hang-newfb-with-reset", true, true, true },
 	};
-	struct gem_engine_properties saved_gpu_timeouts[GEM_MAX_ENGINES];
-	int num_engines;
 	int fd;
 
 	igt_fixture {
@@ -409,8 +407,6 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 		for_each_pipe(&display, pipe)
 			active_pipes[last_pipe++] = pipe;
 		last_pipe--;
-
-		gpu_engines_init_timeouts(fd, ARRAY_SIZE(saved_gpu_timeouts), &num_engines, saved_gpu_timeouts);
 	}
 
 	/* XXX Extend to cover atomic rendering tests to all planes + legacy */
@@ -488,14 +484,24 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 					continue;
 
 				igt_dynamic_f("pipe-%s", kmstest_pipe_name(pipe)) {
-					if (tests[i].reset)
+					struct gem_engine_properties saved_gpu_timeouts[GEM_MAX_ENGINES];
+					int num_engines;
+
+					if (tests[i].reset) {
+						gpu_engines_init_timeouts(display.drm_fd,
+									  ARRAY_SIZE(saved_gpu_timeouts),
+									  &num_engines, saved_gpu_timeouts);
 						igt_set_module_param_int(display.drm_fd, "force_reset_modeset_test", 1);
+					}
 
 					test_hang(&display, pipe, output,
 						  tests[i].modeset, tests[i].hang_newfb);
 
-					if (tests[i].reset)
+					if (tests[i].reset) {
 						igt_set_module_param_int(display.drm_fd, "force_reset_modeset_test", 0);
+						gpu_engines_restore_timeouts(display.drm_fd, num_engines,
+									     saved_gpu_timeouts);
+					}
 				}
 			}
 
@@ -504,7 +510,6 @@ igt_main_args("e", NULL, help_str, opt_handler, NULL)
 	}
 
 	igt_fixture {
-		gpu_engines_restore_timeouts(fd, num_engines, saved_gpu_timeouts);
 		igt_display_fini(&display);
 		close(display.drm_fd);
 	}
-- 
2.34.1



More information about the igt-dev mailing list