[igt-dev] [PATCH i-g-t] tests/perf: add a stress test opening/closing the stream
Chris Wilson
chris at chris-wilson.co.uk
Thu Feb 27 10:23:36 UTC 2020
Quoting Lionel Landwerlin (2020-02-27 10:17:24)
> This appears to trigger hard hangs...
Didn't even require a bg load!
>
> 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,
#define NUM_PROPERTIES(p) (sizeof(p) / (2 * sizeof(uint64_t)))
[and probably crib the kernels assert_pointer_is_array()]
> + .properties_ptr = to_user_pointer(properties),
> + };
> +
> + stream_fd = __perf_open(drm_fd, ¶m, false);
> + __perf_close(stream_fd);
Ok, that looks as basic as can be -- I was struggling to decide what the
minimum parameters were :)
Reviewed-by: Chris Wilson <chris at chris-wilson.co.uk>
-Chris
More information about the igt-dev
mailing list