Dear Maintaniners, Sorry for attaching a not readable patch file at previous mail. I add the diff of the patch inline for your review.
And provide the reason of improvement again and look forward for your feedback. We want to improve the crash_tool for the case that need offline cpu register info even Kdump without crash_notes. For one thing, we will prepare a Kdump with all CPU register info in ELF note. For another thing, we need to modify crash_tool and make it support adding offline cpu register info even Kdump without crash_notes. Signed-off-by: Nicholas Tang <[email protected]> --- crash-7.3.0/arm64.c 2021-04-27 16:01:07.000000000 +0800 +++ crash-7.3.0.mod/arm64.c 2021-06-15 17:13:54.037273227 +0800 @@ -3667,8 +3667,41 @@ arm64_get_crash_notes(void) ulong *notes_ptrs; ulong i, found; - if (!symbol_exists("crash_notes")) + if (!symbol_exists("crash_notes")) { + if (DISKDUMP_DUMPFILE() || KDUMP_DUMPFILE()) { + if (!(ms->panic_task_regs = calloc((size_t)kt->cpus, sizeof(struct arm64_pt_regs)))) + error(FATAL, "cannot calloc panic_task_regs space\n"); + + for (i = found = 0; i < kt->cpus; i++) { + if (DISKDUMP_DUMPFILE()) + note = diskdump_get_prstatus_percpu(i); + else if (KDUMP_DUMPFILE()) + note = netdump_get_prstatus_percpu(i); + else { + error(WARNING, "cpu %d: cannot find NT_PRSTATUS note\n", i); + continue; + } + + /* + * Find correct location of note data. This contains elf_prstatus + * structure which has registers etc. for the crashed task. + */ + offset = sizeof(Elf64_Nhdr); + offset = roundup(offset + note->n_namesz, 4); + p = (char *)note + offset; /* start of elf_prstatus */ + + BCOPY(p + OFFSET(elf_prstatus_pr_reg), &ms->panic_task_regs[i], + sizeof(struct arm64_pt_regs)); + + found++; + } + } + if (!found) { + free(ms->panic_task_regs); + ms->panic_task_regs = NULL; + } return; + } crash_notes = symbol_value("crash_notes"); BR James Hsu From: James Hsu (徐慶薰) Sent: Wednesday, July 7, 2021 3:11 PM To: [email protected] Cc: Nicholas Tang (鄭秦輝); James Hsu (徐慶薰) Subject: [Crash Utility] Improvement for getting offline CPU register without symbol "crash_notes" Dear crash_tool maintainers, We want to improve the crash_tool for the case that need offline cpu register info even Kdump without crash_notes. For one thing, we will prepare a Kdump with all CPU register info in ELF note. For another thing, we need to modify crash_tool and make it support adding offline cpu register info even Kdump without crash_notes. We prepare a patch for the case with ARCH=arm64. Please take your time to review our patch and look forward to receving your comments. BR James Hsu *********************MEDIATEK Confidential/Internal Use*********************
-- Crash-utility mailing list [email protected] https://listman.redhat.com/mailman/listinfo/crash-utility
