Hi Krzysztof, Thanks for reviewing the series.
On Tuesday, 14 October 2025 09:12:15 CEST Krzysztof Karas wrote: > Hi Janusz, > > > When running on a Cherryview, or on a Broxton with VTD enabled, pinning of > > a VMA to GGTT is now committed asynchronously. > You could also mention previously discovered lockdep issues on > those platforms. I think that would make it easier to link this > commit to the previous one in this series, since there is no > mention of Cherryview nor Broxton in the code. OK, and I think I'll do the same with patch 3/3. Thanks, Janusz > > > That may defer further > > processing of resources that depend on that VMA. As a consequence, a 10ms > > delay in a multithreaded migrate test case may occur too short and still > > incomplete threads may be interrupted, and the test case may fail with > > -ERESTARTSYS or -EINTR error code returned by any of those threads. > > > > > Extend the delay to empiricaly determined 100ms on affected platforms. > empiricaly -> empirically > > > > > Signed-off-by: Janusz Krzysztofik <[email protected]> > > --- > > drivers/gpu/drm/i915/gt/selftest_migrate.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > diff --git a/drivers/gpu/drm/i915/gt/selftest_migrate.c > > b/drivers/gpu/drm/i915/gt/selftest_migrate.c > > index 54bc447efce0b..cde755751a0ba 100644 > > --- a/drivers/gpu/drm/i915/gt/selftest_migrate.c > > +++ b/drivers/gpu/drm/i915/gt/selftest_migrate.c > > @@ -710,7 +710,8 @@ static int threaded_migrate(struct intel_migrate > > *migrate, > > thread[i].tsk = tsk; > > } > > > > - msleep(10 * n_cpus); /* start all threads before we kthread_stop() */ > > + /* start all threads before we kthread_stop() */ > > + msleep((intel_vm_no_concurrent_access_wa(migrate->context->vm->i915) ? > > 100 : 10) * n_cpus); > Hmm, I wonder if having 100 ms delay for all platofms would > noticeably affect our testing (to have more uniformity here), > but on the other hand 10 ms was established here for a reason > in the past, so it should be fine. > > > > for (i = 0; i < n_cpus; ++i) { > > struct task_struct *tsk = thread[i].tsk; > >
