On Mon, 8 Nov 2010 14:27:59 -0800 Mike Waychison wrote: > On Mon, Nov 8, 2010 at 1:09 PM, Randy Dunlap <randy.dunlap@xxxxxxxxxx> wrote: > > On Mon, 08 Nov 2010 12:33:23 -0800 Mike Waychison wrote: > > > >> It is very useful to provide some means to force the kernel logs to make it out > >> via the kmsg_oops implementations on the console. Add a new option 'Y' to > >> sysrq to allow dumping of logs to kmsg_dumper drivers. > >> > >> Signed-off-by: Mike Waychison <mikew@xxxxxxxxxx> > > > > Hi, > > > > Please add 'y' to Documentation/sysrq.txt . > > Ok. > > Looking at the docs though, sparc64 has 'y' mapped to "Show global CPU > Registers". The only slot available is 'a' if the list is up to date. 'a' has a big fat warning not to use it. 'x' is powerpc-specific, just as 'y' is sparc64 specific. DaveM, any comments/suggestions on these? Looks like one day soon we'll have to make a way to allow more sysrq keys... > An alternative may be to overload 'v' "Forcefully restores framebuffer > console" and "Causes ETM buffer dump [ARM-specific]" as these actions > seem to be about making crash data visible. > > > > >> --- > >> drivers/char/sysrq.c | 14 +++++++++++++- > >> 1 files changed, 13 insertions(+), 1 deletions(-) > >> > >> diff --git a/drivers/char/sysrq.c b/drivers/char/sysrq.c > >> index eaa5d3e..058d3c8 100644 > >> --- a/drivers/char/sysrq.c > >> +++ b/drivers/char/sysrq.c > >> @@ -41,6 +41,7 @@ > >> #include <linux/oom.h> > >> #include <linux/slab.h> > >> #include <linux/input.h> > >> +#include <linux/kmsg_dump.h> > >> > >> #include <asm/ptrace.h> > >> #include <asm/irq_regs.h> > >> @@ -395,6 +396,17 @@ static struct sysrq_key_op sysrq_unrt_op = { > >> .enable_mask = SYSRQ_ENABLE_RTNICE, > >> }; > >> > >> +static void sysrq_handle_softdump(int key) > >> +{ > >> + kmsg_dump(KMSG_DUMP_SOFT, NULL); > >> +} > >> +static struct sysrq_key_op sysrq_softdump_op = { > >> + .handler = sysrq_handle_softdump, > >> + .help_msg = "soft-dump(Y)", > >> + .action_msg = "Trigger a soft dump", > >> + .enable_mask = SYSRQ_ENABLE_DUMP, > >> +}; > >> + > >> /* Key Operations table and lock */ > >> static DEFINE_SPINLOCK(sysrq_key_table_lock); > >> > >> @@ -451,7 +463,7 @@ static struct sysrq_key_op *sysrq_key_table[36] = { > >> /* x: May be registered on ppc/powerpc for xmon */ > >> NULL, /* x */ > >> /* y: May be registered on sparc64 for global register dump */ > >> - NULL, /* y */ > >> + &sysrq_softdump_op, /* y */ > >> &sysrq_ftrace_dump_op, /* z */ > >> }; > > > > > > --- > > ~Randy > > *** Remember to use Documentation/SubmitChecklist when testing your code *** > > > -- > To unsubscribe from this list: send the line "unsubscribe linux-api" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html --- ~Randy *** Remember to use Documentation/SubmitChecklist when testing your code *** -- To unsubscribe from this list: send the line "unsubscribe linux-api" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html