lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20080310174424.29621e62@ephemeral>
Date:	Mon, 10 Mar 2008 17:44:24 -0400
From:	Andres Salomon <dilinger@...ued.net>
To:	Andrew Morton <akpm@...ux-foundation.org>
Cc:	adaplas@...il.com, linux-kernel@...r.kernel.org,
	linux-fbdev-devel@...ts.sourceforge.net, info-linux@...de.amd.com,
	jordan.crouse@....com, "Rafael J. Wysocki" <rjw@...k.pl>,
	Samuel Thibault <samuel.thibault@...-lyon.org>
Subject: Re: [PATCH 6/6] PM/FB/gxfb: add config option that allows disabling
 of VT switch during suspend

On Mon, 10 Mar 2008 14:19:39 -0700
Andrew Morton <akpm@...ux-foundation.org> wrote:

> On Sat, 8 Mar 2008 20:49:27 -0500
> Andres Salomon <dilinger@...ued.net> wrote:
> 
> > This is purely for suspend/resume time optimization.
> > 
> > 
> > >From 874aa20022a2501a30704163ed31a7baba7de9e5 Mon Sep 17 00:00:00 2001
> > From: Andres Salomon <dilinger@...ian.org>
> > Date: Wed, 5 Mar 2008 16:40:25 -0500
> > Subject: [PATCH] PM: add config option that allows disabling of VT switch during suspend
> > 
> > Prior to suspend, we allocate and switch to a new VT; after suspend, we
> > switch back to the original VT.  This can be slow, and is completely
> > unnecessary if the framebuffer we're using can restore video properly.
> > 
> > This adds CONFIG_DISABLE_SUSPEND_VT_SWITCH which allows the user to
> > select whether or not to do that switch.  This has been tested with the
> > gxfb driver (on a Geode GX dev board and OLPC prototype machines).  In
> > order for the user to even see this option, a framebuffer has to declare
> > support for it (via CONFIG_FBDEV_SUPPORTS_NOSWITCH).
> > 
> > Signed-off-by: Andres Salomon <dilinger@...ian.org>
> > ---
> >  drivers/char/Kconfig        |   21 +++++++++++++++++++++
> >  drivers/video/geode/Kconfig |    1 +
> >  include/linux/suspend.h     |    2 +-
> >  kernel/power/console.c      |    2 +-
> >  4 files changed, 24 insertions(+), 2 deletions(-)
> > 
> > diff --git a/drivers/char/Kconfig b/drivers/char/Kconfig
> > index 47c6be8..7fe0e85 100644
> > --- a/drivers/char/Kconfig
> > +++ b/drivers/char/Kconfig
> > @@ -58,6 +58,27 @@ config VT_CONSOLE
> >  
> >  	  If unsure, say Y.
> >  
> > +config FBDEV_SUPPORTS_NOSWITCH
> > +	bool
> > +	default n
> > +
> > +config DISABLE_SUSPEND_VT_SWITCH
> > +	bool "Disable the console switch prior to suspend (EXPERIMENTAL)"
> > +	depends on VT_CONSOLE && PM && EXPERIMENTAL && FBDEV_SUPPORTS_NOSWITCH
> > +	default n
> > +	---help---
> > +	  This option disables the automatic switch to VT console that happens
> > +	  prior to Linux going into a suspend/sleep.  Your
> > +	  video card/framebuffer must be able to properly restore the
> > +	  display (even if X is doing something crazy!) in this scenario.
> > +	  This is useful for saving precious milliseconds during suspend and
> > +	  resume; however, if your framebuffer lacks support, it could leave
> > +	  your display in a weird state.  If you're even seeing this option,
> > +	  it means at least one of your selected framebuffer drivers supports
> > +	  restoring the display.
> > +
> > +	  If unsure, say N.
> 
> It would be far preferable to do this via a kernel boot parameter rather
> than via a kernel rebuild.
> 

Well, it shouldn't be supported at _all_ unless the framebuffer driver
supports it; you're asking for it to be converted to something like the
following?



#ifdef CONFIG_FBDEV_SUPPORTS_NOSWITCH
static int no_vt_switch;
#endif

int pm_prepare_console(void)
{
#ifdef CONFIG_FBDEV_SUPPORTS_NOSWITCH
	if (no_vt_switch)
		return 0;
#endif
	...
}

#ifdef CONFIG_FBDEV_SUPPORTS_NOSWITCH
module_param(no_vt_switch, int, 0);
MODULE_PARM_DESC(no_vt_switch, "...");
#endif


If so, that means extra #ifdef's sprinkled throughout the code.  Note
that most framebuffer drivers won't be supporting this, and those that
do will almost certainly always want vt switching turned off..


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

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ