Igt-dev Archive on lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH i-g-t] tests/intel/gem_watchdog: Reduced timeouts for worst case scenario
@ 2024-02-12 21:23 John.C.Harrison
  2024-02-12 23:35 ` ✓ Fi.CI.BAT: success for " Patchwork
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: John.C.Harrison @ 2024-02-12 21:23 UTC (permalink / raw)
  To: IGT-Dev; +Cc: John Harrison

From: John Harrison <John.C.Harrison@Intel.com>

The watchdog test reduces the watchdog timer from 20s to 1s and then
uses a 5s timeout waiting for the watchdog to do its stuff. This works
fine in general, but if an engine reset is required by a context that
is actually dead for real then a pre-emption timeout must be factored
in. For RCS/CCS engines, that timeout is 7.5 seconds by default. Thus,
the test timeout expires first and the test fails.

Normally, the system is not so dead when running this test as to
require an engine reset. A simple pre-emption works fine for the
spinner contexts that is uses. However, there is a hardware workaround
coming which prevents context switches when both RCS and CCS are busy.

So add an explicit override of the pre-emption timeout as well as the
watchdog timeout. That will allow the test to keep working after the
new w/a lands.

Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
---
 tests/intel/gem_watchdog.c | 10 ++++++++++
 1 file changed, 10 insertions(+)

diff --git a/tests/intel/gem_watchdog.c b/tests/intel/gem_watchdog.c
index 1e4c350214c0..c9dd0deb51aa 100644
--- a/tests/intel/gem_watchdog.c
+++ b/tests/intel/gem_watchdog.c
@@ -577,6 +577,16 @@ igt_main
 
 		i915 = drm_reopen_driver(i915); /* Apply modparam. */
 		ctx = intel_ctx_create_all_physical(i915);
+
+		for_each_ctx_engine(i915, ctx, e) {
+			/*
+			 * Context termination by watchdog may require an engine reset. That only
+			 * occurs after a pre-emption attempt has expired. For RCS/CCS engines,
+			 * the pre-emption timeout is longer than this test is wanting to wait.
+			 * So reduce that timeout in addition to the watchdog timeout itself.
+			 */
+			gem_engine_property_printf(i915, e->name, "preempt_timeout_ms", "%d", 640);
+		}
 	}
 
 	igt_subtest_group {
-- 
2.43.0


^ permalink raw reply related	[flat|nested] 7+ messages in thread

end of thread, other threads:[~2024-02-19  9:54 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-02-12 21:23 [PATCH i-g-t] tests/intel/gem_watchdog: Reduced timeouts for worst case scenario John.C.Harrison
2024-02-12 23:35 ` ✓ Fi.CI.BAT: success for " Patchwork
2024-02-13  0:26 ` ✓ CI.xeBAT: " Patchwork
2024-02-13  2:57 ` ✗ Fi.CI.IGT: failure " Patchwork
2024-02-13  9:34 ` [PATCH i-g-t] " Tvrtko Ursulin
2024-02-16  1:33   ` John Harrison
2024-02-19  9:53     ` Tvrtko Ursulin

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox