[Intel-gfx] [PATCH] drm/i915/selftests: Disable preemption while setting up fence-timers
Tvrtko Ursulin
tvrtko.ursulin at linux.intel.com
Thu Mar 14 11:37:19 UTC 2019
On 13/03/2019 20:59, Chris Wilson wrote:
> The impossible happens and a future fence expired while we were still
> initialising. The probable cause is that the test was preempted and we
> lost our scheduler cpu slice. Disable preemption during this test to
> rule out preemption as a source of timer disruption.
>
> References: https://bugs.freedesktop.org/show_bug.cgi?id=110039
> Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk>
> ---
> drivers/gpu/drm/i915/selftests/i915_sw_fence.c | 9 ++++++++-
> 1 file changed, 8 insertions(+), 1 deletion(-)
>
> diff --git a/drivers/gpu/drm/i915/selftests/i915_sw_fence.c b/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
> index cdbc8f134e5e..cbf45d85cbff 100644
> --- a/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
> +++ b/drivers/gpu/drm/i915/selftests/i915_sw_fence.c
> @@ -571,21 +571,27 @@ static int test_timer(void *arg)
> unsigned long target, delay;
> struct timed_fence tf;
>
> + preempt_disable();
> timed_fence_init(&tf, target = jiffies);
> if (!i915_sw_fence_done(&tf.fence)) {
> pr_err("Fence with immediate expiration not signaled\n");
> goto err;
> }
> + preempt_enable();
> timed_fence_fini(&tf);
>
> for_each_prime_number(delay, i915_selftest.timeout_jiffies/2) {
> + preempt_disable();
> timed_fence_init(&tf, target = jiffies + delay);
> if (i915_sw_fence_done(&tf.fence)) {
> pr_err("Fence with future expiration (%lu jiffies) already signaled\n", delay);
> goto err;
> }
> + preempt_enable();
>
> i915_sw_fence_wait(&tf.fence);
> +
> + preempt_disable();
> if (!i915_sw_fence_done(&tf.fence)) {
> pr_err("Fence not signaled after wait\n");
> goto err;
> @@ -595,13 +601,14 @@ static int test_timer(void *arg)
> target, jiffies);
> goto err;
> }
> -
> + preempt_enable();
> timed_fence_fini(&tf);
> }
>
> return 0;
>
> err:
> + preempt_enable();
> timed_fence_fini(&tf);
> return -EINVAL;
> }
>
Reviewed-by: Tvrtko Ursulin <tvrtko.ursulin at intel.com>
Regards,
Tvrtko
More information about the Intel-gfx
mailing list