[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