[lkml]   [2009]   [Jan]   [7]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
SubjectRe: sysrq loglevel
On Wed, 7 Jan 2009 12:37:58 +0000 Andy Whitcroft <> wrote:

> It seems that we deliberatly manage the console_loglevel while handling a
> sysrq request. Raising it to 7 to emit the sysrq command header, and then
> lower it before processing the command itself. When booting the kernel
> 'quiet' this means that we only see the header of the command and not its
> output on the console, the whole thing is in dmesg and thereby in syslog
> (if it is working).

I always thought it was fairly stupid. Wouldn't we get the same effect
by tossing that code and switching those printks to KERN_EMERG?

> void __handle_sysrq(int key, struct tty_struct *tty, int check_mask)
> [...]
> console_loglevel = 7;
> printk(KERN_INFO "SysRq : ");
> [...]
> printk("%s\n", op_p->action_msg);
> console_loglevel = orig_log_level;
> op_p->handler(key, tty);
> [...]
> Is this intentional? I can see arguments both ways. One way to look at
> it would be that I asked for the output so I should get it regardless.
> The other side might be that consoles can be really slow (serial or
> something) and so only outputting it there if logging is enabled
> generally is sane.
> Obviously we can work round this at the moment using sysrq-7 to up the
> loglevel before the command and sysrq-4 after to restore quiet.
> What do people think. If we are happy with the status quo then I will
> spin a documentation patch to point out this behaviour and the work
> around. Else I will happily spin a patch to fix it.

There is a legitimate use case, I think: to emit the sysrq command's
output into the log bufffer and not to the console[s]. So you can do

echo t > /proc/sysrq-trigger
dmesg -s 1000000 > foo

 \ /
  Last update: 2009-01-07 20:29    [W:0.069 / U:8.264 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site