Mike Galbraith
2017-Jul-14 13:41 UTC
[Nouveau] [regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
On Fri, 2017-07-14 at 15:36 +0200, Mike Galbraith wrote:> All DRM did was to slip a > WARN_ON_ONCE() that nouveau triggers into a kernel module where such > things no longer warn, they blow the box out of the water.BTW, turn that irksome WARN_ON_ONCE() in drivers/gpu/drm/drm_vblank.c into a WARN_ONCE(), and all is peachy, you get the warning, box lives. --- drivers/gpu/drm/drm_vblank.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) --- a/drivers/gpu/drm/drm_vblank.c +++ b/drivers/gpu/drm/drm_vblank.c @@ -605,7 +605,8 @@ bool drm_calc_vbltimestamp_from_scanoutp */ if (mode->crtc_clock == 0) { DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", pipe); - WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev)); + WARN_ONCE(drm_drv_uses_atomic_modeset(dev), "%s: report me.\n", + dev->driver->name); return false; }
Karol Herbst
2017-Jul-14 15:10 UTC
[Nouveau] [regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
Yeah, we shouldn't let the machine die. Are there more WARN_ON_ONCE usage we could convert to WARN_ONCE? Reviewed-By: Karol Herbst <karolherbst at gmail.com> On Fri, Jul 14, 2017 at 5:05 PM, Tobias Klausmann <tobias.johannes.klausmann at mni.thm.de> wrote:> On 7/14/17 3:41 PM, Mike Galbraith wrote: >> >> On Fri, 2017-07-14 at 15:36 +0200, Mike Galbraith wrote: >>> >>> All DRM did was to slip a >>> WARN_ON_ONCE() that nouveau triggers into a kernel module where such >>> things no longer warn, they blow the box out of the water. >> >> BTW, turn that irksome WARN_ON_ONCE() in drivers/gpu/drm/drm_vblank.c >> into a WARN_ONCE(), and all is peachy, you get the warning, box lives. >> >> --- >> drivers/gpu/drm/drm_vblank.c | 3 ++- >> 1 file changed, 2 insertions(+), 1 deletion(-) >> >> --- a/drivers/gpu/drm/drm_vblank.c >> +++ b/drivers/gpu/drm/drm_vblank.c >> @@ -605,7 +605,8 @@ bool drm_calc_vbltimestamp_from_scanoutp >> */ >> if (mode->crtc_clock == 0) { >> DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", >> pipe); >> - WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev)); >> + WARN_ONCE(drm_drv_uses_atomic_modeset(dev), "%s: report >> me.\n", >> + dev->driver->name); >> return false; >> } > > > > Hey, > > confirmed this helps saving the box, but we still have to find the root > cause! Backtrace with the above fix applied (and the one which came in with > the latest drm-fixes merge)! > > > [1] https://hastebin.com/uyoqifijed.http > > Thanks, > > Tobias >Reviewed-By: Karol Herbst <karolherbst at gmail.com> > _______________________________________________ > Nouveau mailing list > Nouveau at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/nouveau
Mike Galbraith
2017-Jul-14 15:11 UTC
[Nouveau] [regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
On Fri, 2017-07-14 at 17:05 +0200, Tobias Klausmann wrote:> On 7/14/17 3:41 PM, Mike Galbraith wrote: > > On Fri, 2017-07-14 at 15:36 +0200, Mike Galbraith wrote: > >> All DRM did was to slip a > >> WARN_ON_ONCE() that nouveau triggers into a kernel module where such > >> things no longer warn, they blow the box out of the water. > > BTW, turn that irksome WARN_ON_ONCE() in drivers/gpu/drm/drm_vblank.c > > into a WARN_ONCE(), and all is peachy, you get the warning, box lives. > > > > --- > > drivers/gpu/drm/drm_vblank.c | 3 ++- > > 1 file changed, 2 insertions(+), 1 deletion(-) > > > > --- a/drivers/gpu/drm/drm_vblank.c > > +++ b/drivers/gpu/drm/drm_vblank.c > > @@ -605,7 +605,8 @@ bool drm_calc_vbltimestamp_from_scanoutp > > */ > > if (mode->crtc_clock == 0) { > > DRM_DEBUG("crtc %u: Noop due to uninitialized mode.\n", pipe); > > - WARN_ON_ONCE(drm_drv_uses_atomic_modeset(dev)); > > + WARN_ONCE(drm_drv_uses_atomic_modeset(dev), "%s: report me.\n", > > + dev->driver->name); > > > > return false; > > } > > > Hey, > > confirmed this helps saving the box, but we still have to find the root > cause! Backtrace with the above fix applied (and the one which came in > with the latest drm-fixes merge)!Yeah, I'll be reporting some extra whining from my 8600 GT backup box. -Mike
Apparently Analagous Threads
- [regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
- [regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
- [regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
- [regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335
- [regression drm/noveau] suspend to ram -> BOOM: exception RIP: drm_calc_vbltimestamp_from_scanoutpos+335