[Crash-utility] [PATCH] MIPS: support getting regs from kdump dumpfiles
Dave Anderson
anderson at redhat.com
Wed May 13 20:50:52 UTC 2015
----- Original Message -----
> Add support for using the notes in MIPS' kdump compressed format
> dumpfiles.
Hi Rabin,
I've downloaded the sample dumpfiles, tested the patch, and queued it for crash-7.1.1:
https://github.com/crash-utility/crash/commit/3b51fc6b75852428f9ffc7f4a4bd4322a87f0ab9
Thanks,
Dave
> ---
> diskdump.c | 19 +++++++++++++++----
> mips.c | 4 ++++
> 2 files changed, 19 insertions(+), 4 deletions(-)
>
> diff --git a/diskdump.c b/diskdump.c
> index 585aaa9..90f3bff 100644
> --- a/diskdump.c
> +++ b/diskdump.c
> @@ -1285,14 +1285,11 @@ extern void get_netdump_regs_x86(struct bt_info *,
> ulong *, ulong *);
> extern void get_netdump_regs_x86_64(struct bt_info *, ulong *, ulong *);
>
> static void
> -get_diskdump_regs_ppc(struct bt_info *bt, ulong *eip, ulong *esp)
> +get_diskdump_regs_32(struct bt_info *bt, ulong *eip, ulong *esp)
> {
> Elf32_Nhdr *note;
> int len;
>
> - if (KDUMP_CMPRS_VALID())
> - ppc_relocate_nt_prstatus_percpu(dd->nt_prstatus_percpu,
> - &dd->num_prstatus_notes);
> if (KDUMP_CMPRS_VALID() &&
> (bt->task == tt->panic_task ||
> (is_task_active(bt->task) && dd->num_prstatus_notes > 1))) {
> @@ -1313,6 +1310,16 @@ get_diskdump_regs_ppc(struct bt_info *bt, ulong *eip,
> ulong *esp)
> }
>
> static void
> +get_diskdump_regs_ppc(struct bt_info *bt, ulong *eip, ulong *esp)
> +{
> + if (KDUMP_CMPRS_VALID())
> + ppc_relocate_nt_prstatus_percpu(dd->nt_prstatus_percpu,
> + &dd->num_prstatus_notes);
> +
> + get_diskdump_regs_32(bt, eip, esp);
> +}
> +
> +static void
> get_diskdump_regs_ppc64(struct bt_info *bt, ulong *eip, ulong *esp)
> {
> if ((bt->task == tt->panic_task) && DISKDUMP_VALID())
> @@ -1346,6 +1353,10 @@ get_diskdump_regs(struct bt_info *bt, ulong *eip,
> ulong *esp)
> get_diskdump_regs_arm(bt, eip, esp);
> break;
>
> + case EM_MIPS:
> + return get_diskdump_regs_32(bt, eip, esp);
> + break;
> +
> case EM_386:
> return get_netdump_regs_x86(bt, eip, esp);
> break;
> diff --git a/mips.c b/mips.c
> index 77077fb..4b62d1e 100644
> --- a/mips.c
> +++ b/mips.c
> @@ -833,6 +833,10 @@ mips_init(int when)
> #endif
>
> switch (when) {
> + case SETUP_ENV:
> + machdep->process_elf_notes = process_elf32_notes;
> + break;
> +
> case PRE_SYMTAB:
> machdep->verify_symbol = mips_verify_symbol;
> machdep->machspec = &mips_machine_specific;
> --
> 1.7.10.4
>
> --
> Crash-utility mailing list
> Crash-utility at redhat.com
> https://www.redhat.com/mailman/listinfo/crash-utility
>
More information about the Crash-utility
mailing list