summaryrefslogtreecommitdiff
path: root/lib/i915
diff options
context:
space:
mode:
authorLee Shawn C <shawn.c.lee@intel.com>2023-10-13 12:20:12 +0800
committerTvrtko Ursulin <tvrtko.ursulin@intel.com>2023-10-16 08:45:20 +0100
commit93c5ec2105500f7083d0cb50db3fbb3bca3776bb (patch)
tree81ac0fc123d396b73b34c40539ba08e688bd0163 /lib/i915
parent08e87a32fa113a9b6f30cbd9766fec346b53faac (diff)
tests: save GPU engine information more properly
We encounter a unexpected error on chrome book device while running kms_busy test. It will restore GPU engine's timeout value but open incorrect file name (XR24 in below). openat(AT_FDCWD, "/sys/dev/char/226:0", O_RDONLY) = 12 openat(12, "dev", O_RDONLY) = 13 read(13, "226:0\n", 1023) = 6 close(13) = 0 openat(12, "engine", O_RDONLY) = 13 close(12) = 0 openat(13, "XR24", O_RDONLY) = -1 ENOENT (No such file or directory) Test code did not save engine data properly to cause this problem. So modify the code to save GPU engine information into a globla variable to avoid test deamon to open incorrect file again. Issue: https://gitlab.freedesktop.org/drm/igt-gpu-tools/-/issues/147 Fixes: 9e635a1c5029 ("tests/kms_busy: Ensure GPU reset when waiting for a new FB during modeset") Cc: Tvrtko Ursulin <tvrtko.ursulin@linux.intel.com> Cc: Imre Deak <imre.deak@intel.com> Cc: Vidya Srinivas <vidya.srinivas@intel.com> Signed-off-by: Lee Shawn C <shawn.c.lee@intel.com> Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com> Signed-off-by: Tvrtko Ursulin <tvrtko.ursulin@intel.com>
Diffstat (limited to 'lib/i915')
-rw-r--r--lib/i915/gem_engine_topology.c12
-rw-r--r--lib/i915/gem_engine_topology.h2
2 files changed, 7 insertions, 7 deletions
diff --git a/lib/i915/gem_engine_topology.c b/lib/i915/gem_engine_topology.c
index 7c6cd9ba9..afb576afb 100644
--- a/lib/i915/gem_engine_topology.c
+++ b/lib/i915/gem_engine_topology.c
@@ -571,23 +571,23 @@ void gem_engine_properties_configure(int fd, struct gem_engine_properties *param
int ret;
struct gem_engine_properties write = *params;
- ret = gem_engine_property_scanf(fd, write.engine->name,
+ ret = gem_engine_property_scanf(fd, write.engine.name,
"heartbeat_interval_ms",
"%d", &params->heartbeat_interval);
igt_assert_eq(ret, 1);
- ret = gem_engine_property_printf(fd, write.engine->name,
+ ret = gem_engine_property_printf(fd, write.engine.name,
"heartbeat_interval_ms", "%d",
write.heartbeat_interval);
igt_assert_lt(0, ret);
if (gem_scheduler_has_preemption(fd)) {
- ret = gem_engine_property_scanf(fd, write.engine->name,
+ ret = gem_engine_property_scanf(fd, write.engine.name,
"preempt_timeout_ms",
"%d", &params->preempt_timeout);
igt_assert_eq(ret, 1);
- ret = gem_engine_property_printf(fd, write.engine->name,
+ ret = gem_engine_property_printf(fd, write.engine.name,
"preempt_timeout_ms", "%d",
write.preempt_timeout);
igt_assert_lt(0, ret);
@@ -598,13 +598,13 @@ void gem_engine_properties_restore(int fd, const struct gem_engine_properties *s
{
int ret;
- ret = gem_engine_property_printf(fd, saved->engine->name,
+ ret = gem_engine_property_printf(fd, saved->engine.name,
"heartbeat_interval_ms", "%d",
saved->heartbeat_interval);
igt_assert_lt(0, ret);
if (gem_scheduler_has_preemption(fd)) {
- ret = gem_engine_property_printf(fd, saved->engine->name,
+ ret = gem_engine_property_printf(fd, saved->engine.name,
"preempt_timeout_ms", "%d",
saved->preempt_timeout);
igt_assert_lt(0, ret);
diff --git a/lib/i915/gem_engine_topology.h b/lib/i915/gem_engine_topology.h
index 89642c317..9eb9d5ddc 100644
--- a/lib/i915/gem_engine_topology.h
+++ b/lib/i915/gem_engine_topology.h
@@ -122,7 +122,7 @@ struct intel_execution_engine2 gem_eb_flags_to_engine(unsigned int flags);
intel_next_engine(&i__##e__))
struct gem_engine_properties {
- const struct intel_execution_engine2 *engine;
+ struct intel_execution_engine2 engine;
int preempt_timeout;
int heartbeat_interval;
};