Message ID | 20231010150244.2021420-7-jonathan.cavitt@intel.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | drm/i915: Define and use GuC and CTB TLB invalidation routines | expand |
On 10/10/2023 08:02, Jonathan Cavitt wrote: > For the gt_tlb live selftest, when operating on the GSC engine, > increase the timeout from 10 ms to 200 ms because the GSC > engine is a bit slower than the rest. > > Additionally, increase the default timeout from 10 ms to 20 ms > because msleep < 20ms can sleep for up to 20ms. I'm not seeing why that is a reason to make it always sleep for 20ms. msleep is not guaranteed to have any kind of high accuracy. It just vaguely guarantees to sleep for at least the time requested. The point of warning if used for small values is to check against the case where a larger sleep is a problem. E.g. if you must sleep for at least 1ms but no more than 5ms then you need to use a different function because msleep might violate that requirement. But if your requirement is simply to sleep for at least 10ms and who cares if it is longer (as demonstrated by the bump to 200ms for GSC), then it is fine to use msleep(10). Maybe it will waste time and sleep for 20ms, maybe it won't. But it's not a problem if it does. And if it doesn't then you haven't wasted the time. John. > > Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> > --- > drivers/gpu/drm/i915/gt/selftest_tlb.c | 11 +++++++++-- > 1 file changed, 9 insertions(+), 2 deletions(-) > > diff --git a/drivers/gpu/drm/i915/gt/selftest_tlb.c b/drivers/gpu/drm/i915/gt/selftest_tlb.c > index 7e41f69fc818f..24beb94aa7a37 100644 > --- a/drivers/gpu/drm/i915/gt/selftest_tlb.c > +++ b/drivers/gpu/drm/i915/gt/selftest_tlb.c > @@ -136,8 +136,15 @@ pte_tlbinv(struct intel_context *ce, > i915_request_get(rq); > i915_request_add(rq); > > - /* Short sleep to sanitycheck the batch is spinning before we begin */ > - msleep(10); > + /* > + * Short sleep to sanitycheck the batch is spinning before we begin. > + * FIXME: Why is GSC so slow? > + */ > + if (ce->engine->class == OTHER_CLASS) > + msleep(200); > + else > + msleep(20); > + > if (va == vb) { > if (!i915_request_completed(rq)) { > pr_err("%s(%s): Semaphore sanitycheck failed %llx, with alignment %llx, using PTE size %x (phys %x, sg %x)\n",
diff --git a/drivers/gpu/drm/i915/gt/selftest_tlb.c b/drivers/gpu/drm/i915/gt/selftest_tlb.c index 7e41f69fc818f..24beb94aa7a37 100644 --- a/drivers/gpu/drm/i915/gt/selftest_tlb.c +++ b/drivers/gpu/drm/i915/gt/selftest_tlb.c @@ -136,8 +136,15 @@ pte_tlbinv(struct intel_context *ce, i915_request_get(rq); i915_request_add(rq); - /* Short sleep to sanitycheck the batch is spinning before we begin */ - msleep(10); + /* + * Short sleep to sanitycheck the batch is spinning before we begin. + * FIXME: Why is GSC so slow? + */ + if (ce->engine->class == OTHER_CLASS) + msleep(200); + else + msleep(20); + if (va == vb) { if (!i915_request_completed(rq)) { pr_err("%s(%s): Semaphore sanitycheck failed %llx, with alignment %llx, using PTE size %x (phys %x, sg %x)\n",
For the gt_tlb live selftest, when operating on the GSC engine, increase the timeout from 10 ms to 200 ms because the GSC engine is a bit slower than the rest. Additionally, increase the default timeout from 10 ms to 20 ms because msleep < 20ms can sleep for up to 20ms. Signed-off-by: Jonathan Cavitt <jonathan.cavitt@intel.com> --- drivers/gpu/drm/i915/gt/selftest_tlb.c | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-)