Re: [RFC] Try a bit harder to get output on the screen at panictime

From: Maxim Levitsky
Date: Fri May 21 2010 - 18:05:13 EST


On Fri, 2010-05-21 at 00:14 +0300, Maxim Levitsky wrote:
> On Thu, 2010-05-20 at 09:28 -0700, Jesse Barnes wrote:
> > On Thu, 20 May 2010 04:27:07 +0300
> > Maxim Levitsky <maximlevitsky@xxxxxxxxx> wrote:
> >
> > > On Thu, 2010-05-20 at 04:13 +0300, Maxim Levitsky wrote:
> > > > On Wed, 2010-05-19 at 17:34 -0700, Jesse Barnes wrote:
> > > > > On Fri, 9 Apr 2010 15:10:50 -0700
> > > > > Jesse Barnes <jbarnes@xxxxxxxxxxxxxxxx> wrote:
> > > > >
> > > > > > This set of 3 patches makes it a little more likely we'll get panic
> > > > > > output onto the screen even when X is running, assuming a KMS enabled
> > > > > > stack anyway.
> > > > > >
> > > > > > It gets me from a blank or very sparsely populated black screen at
> > > > > > panic time, to one including the full backtrace and panic output at
> > > > > > panic time (tested with "echo c > /proc/sysrq-trigger" from an X
> > > > > > session).
> > > > > >
> > > > > > It doesn't cover every case; for instance I think it'll fail when X has
> > > > > > disabled the display, but those cases need to be handled with separate
> > > > > > patches anyway (need to add atomic DPMS paths for instance).
> > > > > >
> > > > > > Anyway, please test these out and let me know if they work for you.
> > > > >
> > > > > Ping Linus & Dave again. Have you guys tried these? Really, it's cool.
> > > > >
> > > > Second that, just tested these patches, and these work perfectly.
> > > > One more reason for me to dump nvidia driver for nouveau.
> > >
> > >
> > > Unfortunately I spoke too soon.
> > >
> > >
> > > After suspend to ram, system doesn't properly resume now.
> > >
> > > My system is based on nvidia G86, I use latest nouveau drivers, and
> > > suspend with compiz running.
> > >
> > > I also patched kernel not to do vt switch on suspend/resume:
> > >
> > > diff --git a/drivers/gpu/drm/nouveau/nouveau_state.c
> > > b/drivers/gpu/drm/nouveau/nouveau_state.c
> > > index 062b7f6..b3ef08b 100644
> > > --- a/drivers/gpu/drm/nouveau/nouveau_state.c
> > > +++ b/drivers/gpu/drm/nouveau/nouveau_state.c
> > > @@ -31,6 +31,7 @@
> > > #include "drm_crtc_helper.h"
> > > #include <linux/vgaarb.h>
> > > #include <linux/vga_switcheroo.h>
> > > +#include <linux/suspend.h>
> > >
> > > #include "nouveau_drv.h"
> > > #include "nouveau_drm.h"
> > > @@ -771,6 +772,8 @@ int nouveau_load(struct drm_device *dev, unsigned
> > > long flags)
> > > int ret = nouveau_card_init(dev);
> > > if (ret)
> > > return ret;
> > > +
> > > + pm_set_vt_switch(0);
> > > }
> > >
> > > return 0;
> >
> > Hm I don't see how my patches would have affected suspend/resume, since
> > they just add "oops_in_progress" checks to a few places. Are you sure
> > something else isn't breaking your resume path?
> I am sure. I just reverted them, and everything works again.
> I refer to 3 patches in this thread.
In fact I might look a bit silly, but I applied these patches on top of
linus master tree + nouveau master, and suspend to ram works just fine.

Maybe it shows up when kgdb+kdb isn't compiled in or so.
Maybe it just triggered some bug in nouveau drivers...


(Note that I also enabled kgdb, and kdb, and breaking into kdb (SysRQ+g)
doesn't switch console mode, just hangs till I press 'g'.

Best regards,
Maxim Levitsky


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/