Skip to content

Commit

Permalink
powerpc: Fix xmon dl command for new printk implementation
Browse files Browse the repository at this point in the history
Since the printk internals were reworked the xmon 'dl' command which
dumps the content of __log_buf has stopped working.

It is now a structured buffer, so just dumping it doesn't really work.

Use the helpers added for kgdb to print out the content.

Signed-off-by: Michael Ellerman <michael@ellerman.id.au>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
  • Loading branch information
Michael Ellerman authored and Benjamin Herrenschmidt committed Aug 24, 2012
1 parent 1267643 commit ca5dd39
Showing 1 changed file with 10 additions and 26 deletions.
36 changes: 10 additions & 26 deletions arch/powerpc/xmon/xmon.c
Original file line number Diff line number Diff line change
Expand Up @@ -17,6 +17,7 @@
#include <linux/reboot.h>
#include <linux/delay.h>
#include <linux/kallsyms.h>
#include <linux/kmsg_dump.h>
#include <linux/cpumask.h>
#include <linux/export.h>
#include <linux/sysrq.h>
Expand Down Expand Up @@ -2148,40 +2149,23 @@ print_address(unsigned long addr)
void
dump_log_buf(void)
{
const unsigned long size = 128;
unsigned long end, addr;
unsigned char buf[size + 1];

addr = 0;
buf[size] = '\0';
struct kmsg_dumper dumper = { .active = 1 };
unsigned char buf[128];
size_t len;

if (setjmp(bus_error_jmp) != 0) {
printf("Unable to lookup symbol __log_buf!\n");
printf("Error dumping printk buffer!\n");
return;
}

catch_memory_errors = 1;
sync();
addr = kallsyms_lookup_name("__log_buf");

if (! addr)
printf("Symbol __log_buf not found!\n");
else {
end = addr + (1 << CONFIG_LOG_BUF_SHIFT);
while (addr < end) {
if (! mread(addr, buf, size)) {
printf("Can't read memory at address 0x%lx\n", addr);
break;
}

printf("%s", buf);

if (strlen(buf) < size)
break;

addr += size;
}
}
kmsg_dump_rewind_nolock(&dumper);
while (kmsg_dump_get_line_nolock(&dumper, false, buf, sizeof(buf), &len)) {
buf[len] = '\0';
printf("%s", buf);
}

sync();
/* wait a little while to see if we get a machine check */
Expand Down

0 comments on commit ca5dd39

Please sign in to comment.