[igt-dev] [PATCH i-g-t] i915/perf: Make sure i915 is loaded before reading proc
Umesh Nerlige Ramappa
umesh.nerlige.ramappa at intel.com
Fri Oct 30 00:39:11 UTC 2020
The previous test may have unloaded i915 or failed to load it back. To
combat such cases, each test fixture is supposed to ensure that i915 is
loaded prior to running the subtests. In most fixtures this happens
automatically when we try to get a handle to i915. In perf OA, we stat
some proc/sys files even before getting a handle to i915. Occassionally,
perf tests fail trying to stat these files. Fix perf OA by checking and
loading i915 if it's not loaded.
Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/405
Signed-off-by: Umesh Nerlige Ramappa <umesh.nerlige.ramappa at intel.com>
---
tests/i915/perf.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/tests/i915/perf.c b/tests/i915/perf.c
index a5c4adc3..a5bd63c2 100644
--- a/tests/i915/perf.c
+++ b/tests/i915/perf.c
@@ -41,6 +41,7 @@
#include "i915/gem.h"
#include "i915/perf.h"
#include "igt.h"
+#include "igt_kmod.h"
#include "igt_sysfs.h"
#include "drm.h"
@@ -4806,6 +4807,14 @@ igt_main
igt_fixture {
struct stat sb;
+ /*
+ * Prior tests may have unloaded i915 or failed while
+ * loading/unloading i915. Load i915 here before we stat the
+ * files.
+ */
+ if (!igt_kmod_is_loaded("i915"))
+ igt_assert(!igt_i915_driver_load(NULL));
+
igt_require(stat("/proc/sys/dev/i915/perf_stream_paranoid", &sb)
== 0);
igt_require(stat("/proc/sys/dev/i915/oa_max_sample_rate", &sb)
--
2.20.1
More information about the igt-dev
mailing list