Re: [PATCH v2 18/23] sys-rq: Add option to soft dump
From: Mike Waychison
Date: Mon Nov 08 2010 - 17:28:27 EST
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.
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-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/