lkml.org 
[lkml]   [2010]   [May]   [19]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
Patch in this message
/
SubjectRe: [RFC] Try a bit harder to get output on the screen at panic time
From
Date
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@virtuousgeek.org> 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;


Best regards,
Maxim Levitsky



\
 
 \ /
  Last update: 2010-05-20 03:29    [W:0.365 / U:0.312 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site