Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
On Thursday, 14 June 2007 00:23, Stefan Seyfried wrote: > On Thu, Jun 14, 2007 at 12:08:00AM +0200, Pavel Machek wrote: > > Hi! > > > > > I hate having to recompile the kernel, just to be able to debug suspend. > > > Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in > > > /sys/power/disable_console_suspend. > > > > > Signed-off-by: Stefan Seyfried <[EMAIL PROTECTED]> > > > Signed-off-by: Frank Seidel <[EMAIL PROTECTED]> > > > > I wonder if there's a better name? > > Suggest one. Hmm, you could call it 'console_suspend' with 'echo disabled > /sys/power/console_suspend' for switching that off (and analogously with 'enabled') and with 'cat /sys/power/console_suspend' printing the current status. Greetings, Rafael -- "Premature optimization is the root of all evil." - Donald Knuth - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
On Thursday, 14 June 2007 00:23, Stefan Seyfried wrote: On Thu, Jun 14, 2007 at 12:08:00AM +0200, Pavel Machek wrote: Hi! I hate having to recompile the kernel, just to be able to debug suspend. Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in /sys/power/disable_console_suspend. Signed-off-by: Stefan Seyfried [EMAIL PROTECTED] Signed-off-by: Frank Seidel [EMAIL PROTECTED] I wonder if there's a better name? Suggest one. Hmm, you could call it 'console_suspend' with 'echo disabled /sys/power/console_suspend' for switching that off (and analogously with 'enabled') and with 'cat /sys/power/console_suspend' printing the current status. Greetings, Rafael -- Premature optimization is the root of all evil. - Donald Knuth - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
On Thursday, 14 June 2007 00:23, Stefan Seyfried wrote: > On Thu, Jun 14, 2007 at 12:08:00AM +0200, Pavel Machek wrote: > > Hi! > > > > > I hate having to recompile the kernel, just to be able to debug suspend. > > > Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in > > > /sys/power/disable_console_suspend. > > > > > Signed-off-by: Stefan Seyfried <[EMAIL PROTECTED]> > > > Signed-off-by: Frank Seidel <[EMAIL PROTECTED]> > > > > I wonder if there's a better name? > > Suggest one. > > > Or maybe this should not be /sys configurable, but just have value for > > each console "this console can work while suspended"? > > > > (serial can, vesafb can, netconsole can't)? > > Go ahead, submit a patch. It won't be that trivial. And i wonder > if it is actually worth the hassle. This is a debugging facility. > > > Exporting "crash-me" option to user does not seem that cool to me. > > We have "echo c > /proc/sysrq-trigger" also. > This is a debugging option, and forcing users to recompile the kernel just > to debug suspend problems (not resume problems, the "it does not even go to > sleep" stuff is where this matters most) is IMO a bad idea. > > We can also make this a boot parameter, i don't care, but i want to disable > console suspend without recompiling the kernel. It's a bit similar to the pm_trace thing. As long as there is a sane default (ie. the consoles are disabled), I don't see a big problem with that. Moreover, distributions will probably want to have a switch so that they can tell the user "please do 'echo 1 > ...' and retest" and if they start to add such things by themselves that wouldn't be nice. Greetings, Rafael -- "Premature optimization is the root of all evil." - Donald Knuth - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
On Thu, Jun 14, 2007 at 12:08:00AM +0200, Pavel Machek wrote: > Hi! > > > I hate having to recompile the kernel, just to be able to debug suspend. > > Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in > > /sys/power/disable_console_suspend. > > > Signed-off-by: Stefan Seyfried <[EMAIL PROTECTED]> > > Signed-off-by: Frank Seidel <[EMAIL PROTECTED]> > > I wonder if there's a better name? Suggest one. > Or maybe this should not be /sys configurable, but just have value for > each console "this console can work while suspended"? > > (serial can, vesafb can, netconsole can't)? Go ahead, submit a patch. It won't be that trivial. And i wonder if it is actually worth the hassle. This is a debugging facility. > Exporting "crash-me" option to user does not seem that cool to me. We have "echo c > /proc/sysrq-trigger" also. This is a debugging option, and forcing users to recompile the kernel just to debug suspend problems (not resume problems, the "it does not even go to sleep" stuff is where this matters most) is IMO a bad idea. We can also make this a boot parameter, i don't care, but i want to disable console suspend without recompiling the kernel. -- Stefan Seyfried QA / R Team Mobile Devices| "Any ideas, John?" SUSE LINUX Products GmbH, Nürnberg | "Well, surrounding them's out." This footer brought to you by insane German lawmakers: SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
Hi! > I hate having to recompile the kernel, just to be able to debug suspend. > Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in > /sys/power/disable_console_suspend. > Signed-off-by: Stefan Seyfried <[EMAIL PROTECTED]> > Signed-off-by: Frank Seidel <[EMAIL PROTECTED]> I wonder if there's a better name? Or maybe this should not be /sys configurable, but just have value for each console "this console can work while suspended"? (serial can, vesafb can, netconsole can't)? Exporting "crash-me" option to user does not seem that cool to me. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
On Wednesday, 13 June 2007 22:03, Stefan Seyfried wrote: > I hate having to recompile the kernel, just to be able to debug suspend. > Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in > /sys/power/disable_console_suspend. > > Signed-off-by: Stefan Seyfried <[EMAIL PROTECTED]> > Signed-off-by: Frank Seidel <[EMAIL PROTECTED]> > --- > Second try, no longer uses a sysctl in /proc, but a tunable in /sys/power. > Thanks Frank for moving it quicker to sysfs than i would have ever been > able to :-) ACK Greetings, Rafael -- "Premature optimization is the root of all evil." - Donald Knuth - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
[PATCH, 2nd try] make disable_console_suspend runtime configurable
I hate having to recompile the kernel, just to be able to debug suspend. Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in /sys/power/disable_console_suspend. Signed-off-by: Stefan Seyfried <[EMAIL PROTECTED]> Signed-off-by: Frank Seidel <[EMAIL PROTECTED]> --- Second try, no longer uses a sysctl in /proc, but a tunable in /sys/power. Thanks Frank for moving it quicker to sysfs than i would have ever been able to :-) Documentation/power/basic-pm-debugging.txt | 16 +--- drivers/serial/serial_core.c |8 ++-- include/linux/console.h|7 ++- kernel/power/Kconfig | 11 --- kernel/power/main.c| 27 +++ kernel/printk.c|7 +-- 6 files changed, 45 insertions(+), 31 deletions(-) --- a/Documentation/power/basic-pm-debugging.txt +++ b/Documentation/power/basic-pm-debugging.txt @@ -78,13 +78,15 @@ c) Advanced debugging In case the STD does not work on your system even in the minimal configuration and compiling more drivers as modules is not practical or some modules cannot be unloaded, you can use one of the more advanced debugging techniques to find -the problem. First, if there is a serial port in your box, you can set the -CONFIG_DISABLE_CONSOLE_SUSPEND kernel configuration option and try to log kernel -messages using the serial console. This may provide you with some information -about the reasons of the suspend (resume) failure. Alternatively, it may be -possible to use a FireWire port for debugging with firescope -(ftp://ftp.firstfloor.org/pub/ak/firescope/). On i386 it is also possible to -use the PM_TRACE mechanism documented in Documentation/s2ram.txt . +the problem. First, if there is a serial port in your box, you can + +# echo 1 > /sys/power/disable_console_suspend + +and try to log kernel messages using the serial console. This may provide you +with some information about the reasons of the suspend (resume) failure. +Alternatively, it may be possible to use a FireWire port for debugging with +firescope (ftp://ftp.firstfloor.org/pub/ak/firescope/). On i386 it is also +possible to use the PM_TRACE mechanism documented in Documentation/s2ram.txt . 2. Testing suspend to RAM (STR) --- a/drivers/serial/serial_core.c +++ b/drivers/serial/serial_core.c @@ -1934,12 +1934,10 @@ int uart_suspend_port(struct uart_driver mutex_lock(>mutex); -#ifdef CONFIG_DISABLE_CONSOLE_SUSPEND - if (uart_console(port)) { + if (disable_console_suspend && uart_console(port)) { mutex_unlock(>mutex); return 0; } -#endif if (state->info && state->info->flags & UIF_INITIALIZED) { const struct uart_ops *ops = port->ops; @@ -1982,12 +1980,10 @@ int uart_resume_port(struct uart_driver mutex_lock(>mutex); -#ifdef CONFIG_DISABLE_CONSOLE_SUSPEND - if (uart_console(port)) { + if (disable_console_suspend && uart_console(port)) { mutex_unlock(>mutex); return 0; } -#endif uart_change_pm(state, 0); --- a/include/linux/console.h +++ b/include/linux/console.h @@ -64,6 +64,8 @@ extern const struct consw vga_con;/* VG extern const struct consw newport_con; /* SGI Newport console */ extern const struct consw prom_con;/* SPARC PROM console */ +extern int disable_console_suspend; + int con_is_bound(const struct consw *csw); int register_con_driver(const struct consw *csw, int first, int last); int unregister_con_driver(const struct consw *csw); @@ -120,14 +122,9 @@ extern void console_stop(struct console extern void console_start(struct console *); extern int is_console_locked(void); -#ifndef CONFIG_DISABLE_CONSOLE_SUSPEND /* Suspend and resume console messages over PM events */ extern void suspend_console(void); extern void resume_console(void); -#else -static inline void suspend_console(void) {} -static inline void resume_console(void) {} -#endif /* CONFIG_DISABLE_CONSOLE_SUSPEND */ int mda_console_init(void); void prom_con_init(void); --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig @@ -37,17 +37,6 @@ config PM_DEBUG code. This is helpful when debugging and reporting various PM bugs, like suspend support. -config DISABLE_CONSOLE_SUSPEND - bool "Keep console(s) enabled during suspend/resume (DANGEROUS)" - depends on PM && PM_DEBUG - default n - ---help--- - This option turns off the console suspend mechanism that prevents - debug messages from reaching the console during the suspend/resume - operations. This may be helpful when debugging device drivers' - suspend/resume routines, but may itself lead to problems, for example - if netconsole is used. - config PM_TRACE bool "Suspend/resume event tracing" depends on PM && PM_DEBUG && X86_32 && EXPERIMENTAL
[PATCH, 2nd try] make disable_console_suspend runtime configurable
I hate having to recompile the kernel, just to be able to debug suspend. Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in /sys/power/disable_console_suspend. Signed-off-by: Stefan Seyfried [EMAIL PROTECTED] Signed-off-by: Frank Seidel [EMAIL PROTECTED] --- Second try, no longer uses a sysctl in /proc, but a tunable in /sys/power. Thanks Frank for moving it quicker to sysfs than i would have ever been able to :-) Documentation/power/basic-pm-debugging.txt | 16 +--- drivers/serial/serial_core.c |8 ++-- include/linux/console.h|7 ++- kernel/power/Kconfig | 11 --- kernel/power/main.c| 27 +++ kernel/printk.c|7 +-- 6 files changed, 45 insertions(+), 31 deletions(-) --- a/Documentation/power/basic-pm-debugging.txt +++ b/Documentation/power/basic-pm-debugging.txt @@ -78,13 +78,15 @@ c) Advanced debugging In case the STD does not work on your system even in the minimal configuration and compiling more drivers as modules is not practical or some modules cannot be unloaded, you can use one of the more advanced debugging techniques to find -the problem. First, if there is a serial port in your box, you can set the -CONFIG_DISABLE_CONSOLE_SUSPEND kernel configuration option and try to log kernel -messages using the serial console. This may provide you with some information -about the reasons of the suspend (resume) failure. Alternatively, it may be -possible to use a FireWire port for debugging with firescope -(ftp://ftp.firstfloor.org/pub/ak/firescope/). On i386 it is also possible to -use the PM_TRACE mechanism documented in Documentation/s2ram.txt . +the problem. First, if there is a serial port in your box, you can + +# echo 1 /sys/power/disable_console_suspend + +and try to log kernel messages using the serial console. This may provide you +with some information about the reasons of the suspend (resume) failure. +Alternatively, it may be possible to use a FireWire port for debugging with +firescope (ftp://ftp.firstfloor.org/pub/ak/firescope/). On i386 it is also +possible to use the PM_TRACE mechanism documented in Documentation/s2ram.txt . 2. Testing suspend to RAM (STR) --- a/drivers/serial/serial_core.c +++ b/drivers/serial/serial_core.c @@ -1934,12 +1934,10 @@ int uart_suspend_port(struct uart_driver mutex_lock(state-mutex); -#ifdef CONFIG_DISABLE_CONSOLE_SUSPEND - if (uart_console(port)) { + if (disable_console_suspend uart_console(port)) { mutex_unlock(state-mutex); return 0; } -#endif if (state-info state-info-flags UIF_INITIALIZED) { const struct uart_ops *ops = port-ops; @@ -1982,12 +1980,10 @@ int uart_resume_port(struct uart_driver mutex_lock(state-mutex); -#ifdef CONFIG_DISABLE_CONSOLE_SUSPEND - if (uart_console(port)) { + if (disable_console_suspend uart_console(port)) { mutex_unlock(state-mutex); return 0; } -#endif uart_change_pm(state, 0); --- a/include/linux/console.h +++ b/include/linux/console.h @@ -64,6 +64,8 @@ extern const struct consw vga_con;/* VG extern const struct consw newport_con; /* SGI Newport console */ extern const struct consw prom_con;/* SPARC PROM console */ +extern int disable_console_suspend; + int con_is_bound(const struct consw *csw); int register_con_driver(const struct consw *csw, int first, int last); int unregister_con_driver(const struct consw *csw); @@ -120,14 +122,9 @@ extern void console_stop(struct console extern void console_start(struct console *); extern int is_console_locked(void); -#ifndef CONFIG_DISABLE_CONSOLE_SUSPEND /* Suspend and resume console messages over PM events */ extern void suspend_console(void); extern void resume_console(void); -#else -static inline void suspend_console(void) {} -static inline void resume_console(void) {} -#endif /* CONFIG_DISABLE_CONSOLE_SUSPEND */ int mda_console_init(void); void prom_con_init(void); --- a/kernel/power/Kconfig +++ b/kernel/power/Kconfig @@ -37,17 +37,6 @@ config PM_DEBUG code. This is helpful when debugging and reporting various PM bugs, like suspend support. -config DISABLE_CONSOLE_SUSPEND - bool Keep console(s) enabled during suspend/resume (DANGEROUS) - depends on PM PM_DEBUG - default n - ---help--- - This option turns off the console suspend mechanism that prevents - debug messages from reaching the console during the suspend/resume - operations. This may be helpful when debugging device drivers' - suspend/resume routines, but may itself lead to problems, for example - if netconsole is used. - config PM_TRACE bool Suspend/resume event tracing depends on PM PM_DEBUG X86_32 EXPERIMENTAL ---
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
On Wednesday, 13 June 2007 22:03, Stefan Seyfried wrote: I hate having to recompile the kernel, just to be able to debug suspend. Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in /sys/power/disable_console_suspend. Signed-off-by: Stefan Seyfried [EMAIL PROTECTED] Signed-off-by: Frank Seidel [EMAIL PROTECTED] --- Second try, no longer uses a sysctl in /proc, but a tunable in /sys/power. Thanks Frank for moving it quicker to sysfs than i would have ever been able to :-) ACK Greetings, Rafael -- Premature optimization is the root of all evil. - Donald Knuth - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
Hi! I hate having to recompile the kernel, just to be able to debug suspend. Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in /sys/power/disable_console_suspend. Signed-off-by: Stefan Seyfried [EMAIL PROTECTED] Signed-off-by: Frank Seidel [EMAIL PROTECTED] I wonder if there's a better name? Or maybe this should not be /sys configurable, but just have value for each console this console can work while suspended? (serial can, vesafb can, netconsole can't)? Exporting crash-me option to user does not seem that cool to me. Pavel -- (english) http://www.livejournal.com/~pavelmachek (cesky, pictures) http://atrey.karlin.mff.cuni.cz/~pavel/picture/horses/blog.html - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
On Thu, Jun 14, 2007 at 12:08:00AM +0200, Pavel Machek wrote: Hi! I hate having to recompile the kernel, just to be able to debug suspend. Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in /sys/power/disable_console_suspend. Signed-off-by: Stefan Seyfried [EMAIL PROTECTED] Signed-off-by: Frank Seidel [EMAIL PROTECTED] I wonder if there's a better name? Suggest one. Or maybe this should not be /sys configurable, but just have value for each console this console can work while suspended? (serial can, vesafb can, netconsole can't)? Go ahead, submit a patch. It won't be that trivial. And i wonder if it is actually worth the hassle. This is a debugging facility. Exporting crash-me option to user does not seem that cool to me. We have echo c /proc/sysrq-trigger also. This is a debugging option, and forcing users to recompile the kernel just to debug suspend problems (not resume problems, the it does not even go to sleep stuff is where this matters most) is IMO a bad idea. We can also make this a boot parameter, i don't care, but i want to disable console suspend without recompiling the kernel. -- Stefan Seyfried QA / RD Team Mobile Devices| Any ideas, John? SUSE LINUX Products GmbH, Nürnberg | Well, surrounding them's out. This footer brought to you by insane German lawmakers: SUSE Linux Products GmbH, GF: Markus Rex, HRB 16746 (AG Nürnberg) - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
Re: [PATCH, 2nd try] make disable_console_suspend runtime configurable
On Thursday, 14 June 2007 00:23, Stefan Seyfried wrote: On Thu, Jun 14, 2007 at 12:08:00AM +0200, Pavel Machek wrote: Hi! I hate having to recompile the kernel, just to be able to debug suspend. Remove CONFIG_DISABLE_CONSOLE_SUSPEND, replace it by a tunable in /sys/power/disable_console_suspend. Signed-off-by: Stefan Seyfried [EMAIL PROTECTED] Signed-off-by: Frank Seidel [EMAIL PROTECTED] I wonder if there's a better name? Suggest one. Or maybe this should not be /sys configurable, but just have value for each console this console can work while suspended? (serial can, vesafb can, netconsole can't)? Go ahead, submit a patch. It won't be that trivial. And i wonder if it is actually worth the hassle. This is a debugging facility. Exporting crash-me option to user does not seem that cool to me. We have echo c /proc/sysrq-trigger also. This is a debugging option, and forcing users to recompile the kernel just to debug suspend problems (not resume problems, the it does not even go to sleep stuff is where this matters most) is IMO a bad idea. We can also make this a boot parameter, i don't care, but i want to disable console suspend without recompiling the kernel. It's a bit similar to the pm_trace thing. As long as there is a sane default (ie. the consoles are disabled), I don't see a big problem with that. Moreover, distributions will probably want to have a switch so that they can tell the user please do 'echo 1 ...' and retest and if they start to add such things by themselves that wouldn't be nice. Greetings, Rafael -- Premature optimization is the root of all evil. - Donald Knuth - To unsubscribe from this list: send the line unsubscribe linux-kernel in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/