[igt-dev] [PATCH i-g-t] tests/perf: add a stress test opening/closing the stream
Lionel Landwerlin
lionel.g.landwerlin at intel.com
Thu Feb 27 10:17:24 UTC 2020
This appears to trigger hard hangs...
Signed-off-by: Lionel Landwerlin <lionel.g.landwerlin at intel.com>
---
tests/perf.c | 31 +++++++++++++++++++++++++++++++
1 file changed, 31 insertions(+)
diff --git a/tests/perf.c b/tests/perf.c
index d9bac561..d9ff4edb 100644
--- a/tests/perf.c
+++ b/tests/perf.c
@@ -3995,6 +3995,34 @@ test_rc6_disable(void)
igt_assert_neq(n_events_end - n_events_start, 0);
}
+static void
+test_stress_open_close(void)
+{
+ igt_until_timeout(2) {
+ int oa_exponent = 5; /* 5 micro seconds */
+ uint64_t properties[] = {
+ /* XXX: even without periodic sampling we have to
+ * specify at least one sample layout property...
+ */
+ DRM_I915_PERF_PROP_SAMPLE_OA, true,
+
+ /* OA unit configuration */
+ DRM_I915_PERF_PROP_OA_METRICS_SET, test_set->perf_oa_metrics_set,
+ DRM_I915_PERF_PROP_OA_FORMAT, test_set->perf_oa_format,
+ DRM_I915_PERF_PROP_OA_EXPONENT, oa_exponent,
+ };
+ struct drm_i915_perf_open_param param = {
+ .flags = I915_PERF_FLAG_FD_CLOEXEC |
+ I915_PERF_FLAG_DISABLED, /* XXX: open disabled */
+ .num_properties = sizeof(properties) / 16,
+ .properties_ptr = to_user_pointer(properties),
+ };
+
+ stream_fd = __perf_open(drm_fd, ¶m, false);
+ __perf_close(stream_fd);
+ }
+}
+
static int __i915_perf_add_config(int fd, struct drm_i915_perf_oa_config *config)
{
int ret = igt_ioctl(fd, DRM_IOCTL_I915_PERF_ADD_CONFIG, config);
@@ -4590,6 +4618,9 @@ igt_main
igt_subtest("rc6-disable")
test_rc6_disable();
+ igt_subtest("stress-open-close")
+ test_stress_open_close();
+
igt_subtest("invalid-create-userspace-config")
test_invalid_create_userspace_config();
--
2.25.1
More information about the igt-dev
mailing list