On Tue, Oct 20, 2026 at 01:13:50PM +0200, Christian König wrote:
> On 10/20/26 04:21, Raag Jadav wrote:
> > Currently, drm_dev_wedged_event() logs a basic message of device being
> > wedged, but doesn't print the recovery method used by the caller. Log it
> > for easier bug report analysis.
> >
> > While at it, as device wedging is a catastrophic event for the cases that
> > do need recovery, distinguish them and raise their log level to drm_warn().
> >
> > Signed-off-by: Raag Jadav <[email protected]>
> > ---
> > v2: Distinguish between recovery and no recovery cases (Christian, Rodrigo)
> > ---
> > drivers/gpu/drm/drm_drv.c | 6 ++++--
> > 1 file changed, 4 insertions(+), 2 deletions(-)
> >
> > diff --git a/drivers/gpu/drm/drm_drv.c b/drivers/gpu/drm/drm_drv.c
> > index cb53baa70995..7f8abb72f548 100644
> > --- a/drivers/gpu/drm/drm_drv.c
> > +++ b/drivers/gpu/drm/drm_drv.c
> > @@ -598,8 +598,10 @@ int drm_dev_wedged_event(struct drm_device *dev,
> > unsigned long method,
> > /* Caller is unsure about recovery, do the best we can at this
> > point. */
> > snprintf(event_string, sizeof(event_string), "%s",
> > "WEDGED=unknown");
> >
> > - drm_info(dev, "device wedged, %s\n", method == DRM_WEDGE_RECOVERY_NONE ?
> > - "but no recovery needed" : "needs recovery");
> > + if (method == DRM_WEDGE_RECOVERY_NONE)
> > + drm_info(dev, "device wedged, but no recovery needed\n");
> > + else
> > + drm_warn(dev, "device wedged with method %#lx, needs
> > recovery\n", method);
>
> That is still not ok.
what I had in mind was a explicit option so the drivers can select if it is
okay or not.
>
> Again device wedging is a perfectly normal part of operation and clearly
> doesn't deserves a warning.
sometimes it is not, but I understand your point.
Perhaps we just skip this and in the case where it is not an info + a custom
driver warn is okay since everything will be stopped anyway in this cathastropic
case.
>
> As far as I can see userspace can spam the log with warnings by just
> submitting shaders with an endless loop in it.
>
> Regards,
> Christian.
>
> >
> > if (info && (info->comm[0] != '\0') && (info->pid >= 0)) {
> > snprintf(pid_string, sizeof(pid_string), "PID=%u", info->pid);
>