Re: [PATCH 6/7] pm: Config option to disable handling of consoleduring suspend/resume

From: Ben Collins
Date: Wed Jul 30 2008 - 10:20:27 EST


On Tue, 2008-07-29 at 21:47 -0700, Greg KH wrote:
> On Tue, Jul 29, 2008 at 05:51:50PM -0400, Ben Collins wrote:
> > On Tue, 2008-07-29 at 23:15 +0200, Rafael J. Wysocki wrote:
> > > On Tuesday, 29 of July 2008, Greg KH wrote:
> > > > On Sun, Jul 20, 2008 at 09:48:28PM -0400, Ben Collins wrote:
> > > > > Config option allows userspace to handle console during suspend/resume
> > > > > instead of the kernel.
> > > > >
> > > > > Signed-off-by: Ben Collins <ben.collins@xxxxxxxxxxxxx>
> > > > > ---
> > > > > kernel/power/Kconfig | 15 +++++++++++++++
> > > > > kernel/power/console.c | 4 ++++
> > > > > 2 files changed, 19 insertions(+), 0 deletions(-)
> > > > >
> > > > > diff --git a/kernel/power/Kconfig b/kernel/power/Kconfig
> > > > > index b45da40..6855299 100644
> > > > > --- a/kernel/power/Kconfig
> > > > > +++ b/kernel/power/Kconfig
> > > > > @@ -105,6 +105,21 @@ config SUSPEND_FREEZER
> > > > >
> > > > > Turning OFF this setting is NOT recommended! If in doubt, say Y.
> > > > >
> > > > > +config PM_DISABLE_CONSOLE
> > > > > + bool "Disable Power Management messing with the active console"
> > > > > + depends on PM
> > > > > + default n
> > > > > + ---help---
> > > > > + By default, PM will take over the active console (generally, this means
> > > > > + switching to the console when suspending from X). This can at times cause
> > > > > + problems, especially if userspace suspend scripts try to do things with
> > > > > + the console before or after suspending (e.g. calling vbestate).
> > > > > +
> > > > > + To work around this, enable this option so that PM will not handle the
> > > > > + console.
> > > > > +
> > > > > + If unsure, say N.
> > > > > +
> > > > > config HIBERNATION
> > > > > bool "Hibernation (aka 'suspend to disk')"
> > > > > depends on PM && SWAP && ARCH_HIBERNATION_POSSIBLE
> > > > > diff --git a/kernel/power/console.c b/kernel/power/console.c
> > > > > index b8628be..8b9706f 100644
> > > > > --- a/kernel/power/console.c
> > > > > +++ b/kernel/power/console.c
> > > > > @@ -33,6 +33,7 @@ EXPORT_SYMBOL(pm_set_vt_switch);
> > > > >
> > > > > int pm_prepare_console(void)
> > > > > {
> > > > > +#ifndef CONFIG_PM_DISABLE_CONSOLE
> > > >
> > > > Can't you do this in a .h file instead?
> > > >
> > > > And is this really needed? Why has no other distro needed this change?
> > > > What is so wierd about your suspend setup to require this?
> > >
> > > Reportedly, some systems have problems with graphics restoration from user
> > > space if the switch is done.
> > >
> > > Anyway, I'd prefer to use the (already existing) pm_set_vt_switch() thing for
> > > that, maybe with the help of a command line parameter, to adding the .config
> > > option like this.
> >
> > Ah. I didn't notice pm_set_vt_switch(). Then what I would like better is
> > the config option to set a default. For us, not doing the vt switch is a
> > good default (I don't think we have a case where suspend/resume requires
> > it).
> >
> > Something like:
> >
> > diff --git a/Documentation/kernel-parameters.txt b/Documentation/kernel-parameters.txt
> > index e7bea3e..6a042f8 100644
> > --- a/Documentation/kernel-parameters.txt
> > +++ b/Documentation/kernel-parameters.txt
> > @@ -2247,6 +2247,11 @@ and is between 256 and 4096 characters. It is defined in the file
> > vmpoff= [KNL,S390] Perform z/VM CP command after power off.
> > Format: <command>
> >
> > + vt_switch= [PM] Switch vt's during suspend/resume
> > + Format: { 0 | 1 }
> > + Default is normally '1', but depends on value of
> > + the PM_DISABLE_CONSOLE config option.
> > +
>
> Why a build time config option? Why not just set the command line
> option if you need this? And/or make it a sysctrl?
>
> That way we don't have to add yet-another-config-option for distros and
> users to get wrong.
>
> thanks,

Sysctl makes sense. I would rather not have to add a cmdline option to
default installs (and on upgrades). I'll redo the patch that way and
resend.

--
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/