Re: [PATCH 2.6.23] SysRq: print hotkey info while pressing undefkey

From: Pavel Machek
Date: Tue Oct 16 2007 - 13:21:47 EST


Hi!

> For SysRq, we just can get hot key list from Documentation/sysrq.txt
> , but in the most of cases, the user can't access it by hand on
> using SysRq to debug, so it is better for SysRq to provide an online
> help for the users.
>
> SysRq has already provided a similiar help before this patch, but it
> is not so definite that the user doesn't know what happened and how
> to do on pressing an undefined hot key.
>
> In addition, that funtion has a big loop with another big loop
> embedded which is very inefficient, it is intended to skip some hot
> key help info for such a function as "Changing Loglevel", just print
> a help info for this, that is very unnecessary. In fact, the key '0'
> - '8' have different results the user should know.
>
> This patch add this online help function, it'll print thw whole hot
> key list and corresponding function descriptions, it can print the new
> defined hot key without any changed needed.
>
> The output is the below on pressing an undefined hot key:
>
> SysRq : <6>this hot key isn't defined.
>
> SysRq Help Information:
>
> Hot Key Function Description
> =========== ====================
> ALT+SysRq+0 Changing Loglevel to this value
> ALT+SysRq+1 Changing Loglevel to this value
> ALT+SysRq+2 Changing Loglevel to this value
> ALT+SysRq+3 Changing Loglevel to this value
> ALT+SysRq+4 Changing Loglevel to this value
> ALT+SysRq+5 Changing Loglevel to this value
> ALT+SysRq+6 Changing Loglevel to this value
> ALT+SysRq+7 Changing Loglevel to this value
> ALT+SysRq+8 Changing Loglevel to this value
> ALT+SysRq+9 Changing Loglevel to this value
> ALT+SysRq+a Not defined
> ALT+SysRq+b Resetting
> ALT+SysRq+c Trigger a crashdump
> ALT+SysRq+d Not defined
> ALT+SysRq+e Terminate All Tasks
> ALT+SysRq+f Manual OOM execution
> ALT+SysRq+g Not defined
> ALT+SysRq+h Not defined
> ALT+SysRq+i Kill All Tasks
> ALT+SysRq+j Not defined
> ALT+SysRq+k SAK
> ALT+SysRq+l Not defined
> ALT+SysRq+m Show Memory
> ALT+SysRq+n Nice All RT Tasks
> ALT+SysRq+o Power Off
> ALT+SysRq+p Show Regs
> ALT+SysRq+q Show Pending Timers
> ALT+SysRq+r Keyboard mode set to XLATE
> ALT+SysRq+s Emergency Sync
> ALT+SysRq+t Show State
> ALT+SysRq+u Emergency Remount R/O
> ALT+SysRq+v Not defined
> ALT+SysRq+w Show Blocked State
> ALT+SysRq+x Not defined
> ALT+SysRq+y Not defined
> ALT+SysRq+z Not defined

This will scroll out of users view on small terminals.

Plus it is untrue. On sparc, it is stop+x, not sysrq+x.

> +/*
> + * Hot key table SysRq supports
> + */
> +static char __read_mostly sysrq_hot_key_table[36] = {
> + '0', '1', '2', '3', '4', '5', '6', '7', '8', '9',
> + 'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'i', 'j',
> + 'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's', 't',
> + 'u', 'v', 'w', 'x', 'y', 'z'
> +};

Plus this is practically guaranteed to get out of sync with
reality. If you did this to make sysrq printing faster... then that is
very bad optimization.
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 majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/