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

Rob Clark rob.clark at oss.qualcomm.com
Tue Jul 1 18:02:07 UTC 2025


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

> 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