[PATCH 3/6] watchdog

Tvrtko Ursulin tvrtko.ursulin at linux.intel.com
Wed Jan 13 12:52:50 UTC 2021


On 13/01/2021 12:27, Chris Wilson wrote:
> Quoting Tvrtko Ursulin (2021-01-13 12:03:08)
>>   void __i915_request_queue(struct i915_request *rq,
>>                            const struct i915_sched_attr *attr)
>>   {
>> +       struct intel_context *ce = rq->context;
>> +
>> +       if (ce->watchdog.timeout_us) {
>> +               hrtimer_init(&rq->watchdog.timer, CLOCK_MONOTONIC,
>> +                            HRTIMER_MODE_REL);
>> +               rq->watchdog.timer.function = request_watchdog_expired;
>> +               hrtimer_start_range_ns(&rq->watchdog.timer,
>> +                                      ns_to_ktime(ce->watchdog.timeout_us *
>> +                                                  NSEC_PER_USEC),
>> +                                      NSEC_PER_MSEC, /* FIXME check if it gives the "not sooner" guarantee or slack is both ways */
>> +                                      HRTIMER_MODE_REL);
>> +               i915_request_get(rq);
>> +       }
> 
> Ignoring the existence of userspace today that requires >60s batches,
> the trivial test to break this is to queue more than 10s worth of
> work since this measuring time from user-ioctl to completion.
> gem_exec_hostile/far-fence as a reminder on how we can legitimately
> construct arbitrary amounts of work. (In this case, submit 3 5s batches,
> the last should not fail.)

Now you reminded me I was supposed to put the arming into the 
submit_notify.. Not saying it changes much. :)

Regards,

Tvrtko



More information about the Intel-gfx-trybot mailing list