[PATCH igt 8/9] msm/mapping: Add wait for stall-on-fault to re-arm

Kamil Konieczny kamil.konieczny at linux.intel.com
Wed Jul 2 07:39:13 UTC 2025


Hi Rob,
On 2025-07-01 at 11:02:07 -0700, Rob Clark wrote:
> On Tue, Jul 1, 2025 at 9:24 AM Kamil Konieczny
> <kamil.konieczny at linux.intel.com> wrote:
> >
> > Hi Rob,
> > On 2025-06-30 at 11:09:02 -0700, Rob Clark wrote:
> > > From: Rob Clark <rob.clark at oss.qualcomm.com>
> > >
> > > Newer kernels disable stall-on-fault for a grace period, to avoid a
> > > flood of faults causing instability with memory translations that
> > > the hw attempts with the translation stalled.  Fortunately it adds a
> >
> > Is it system-wide or only for msm driver?
> 
> specific to msm
> 
> BR,
> -R

Ok, so please write it explicitly, like for example:

Newer msm driver disables stall-on-fault for a grace period, [...rest...]

Please also give a link to lore with a change in msm driver.

Regards,
Kamil

> 
> > Please improve subject:
> >
> > [PATCH igt 8/9] tests/msm/msm_mapping: Add wait for stall-on-fault to re-arm
> >
> > imho it could be shorter:
> >
> > [PATCH igt 8/9] tests/msm/msm_mapping: Wait for stall-on-fault
> >
> > Regards,
> > Kamil
> >
> > > debugfs file so we can know how long we need to wait for stall-on-
> > > fault to be re-enabled.
> > >
> > > Signed-off-by: Rob Clark <rob.clark at oss.qualcomm.com>
> > > ---
> > >  tests/msm/msm_mapping.c | 29 +++++++++++++++++++++++++++++
> > >  1 file changed, 29 insertions(+)
> > >
> > > diff --git a/tests/msm/msm_mapping.c b/tests/msm/msm_mapping.c
> > > index 978ea18375dd..7e2f5c7eadc8 100644
> > > --- a/tests/msm/msm_mapping.c
> > > +++ b/tests/msm/msm_mapping.c
> > > @@ -74,6 +74,30 @@ get_and_clear_devcore(int timeout_ms)
> > >       return buf;
> > >  }
> > >
> > > +static void
> > > +wait_for_stall_on_fault(int drm_fd)
> > > +{
> > > +     char buf[64] = "\0";
> > > +
> > > +     do {
> > > +             int us;
> > > +
> > > +             igt_debugfs_read(drm_fd, "stall_reenable_time_us", buf);
> > > +             if (!strlen(buf)) {
> > > +                     /* Not supported on older kernels: */
> > > +                     return;
> > > +             }
> > > +
> > > +             us = atoi(buf);
> > > +             if (!us) {
> > > +                     /* Done waiting: */
> > > +                     return;
> > > +             }
> > > +
> > > +             usleep(us);
> > > +     } while (true);
> > > +}
> > > +
> > >  /*
> > >   * Helper to find named buffer address
> > >   */
> > > @@ -224,6 +248,11 @@ do_mapping_test(struct msm_pipe *pipe, const char *buffername, bool write)
> > >       ret = sscanf(s, "  - iova=%"PRIx64, &fault_addr);
> > >       igt_fail_on(ret != 1);
> > >       igt_fail_on(addr != fault_addr);
> > > +
> > > +     /* Wait for stall-on-fault to re-enable, otherwise the next sub-test
> > > +      * would not generate a devcore:
> > > +      */
> > > +     wait_for_stall_on_fault(pipe->dev->fd);
> > >  }
> > >
> > >  /*
> > > --
> > > 2.50.0
> > >


More information about the igt-dev mailing list