[Crash-utility] [Crash Utility] Improvement for getting offline CPU register without symbol "crash_notes"
HAGIO KAZUHITO(萩尾 一仁)
k-hagio-ab at nec.com
Wed Aug 11 01:53:38 UTC 2021
Hi James Hsu,
sorry for the delay, I had been on vacation.
-----Original Message-----
>
> Dear Kazuhito,
>
> Sorry for late reply and mail with html format
>
> Our patch was implemented and verified with our kedump.
I see, you mean that you're using a customized kdump or something.
I'll review your patch again, please wait for a while.
Thanks,
Kazu
> We will resend a mail to upstream it and refine mail title as "arm64: Get CPU registers without crash_notes
> symbol"?
>
> About your suggestion that it could be united with the code when crash_notes exists, we will try it when
> we can generate a kedump with crash_note
> So we want to upstream current patch first, hope you can accept it.
>
> Thanks,
> James Hsu
>
> -----Original Message-----
> From: HAGIO KAZUHITO($BGkHx!!0l?N(B) [mailto:k-hagio-ab at nec.com]
> Sent: Friday, July 30, 2021 3:42 PM
> To: James Hsu ($B=y7D{b(B); Discussion list for crash utility usage, maintenance and development
> Cc: Nicholas Tang ($BE"?A51(B)
> Subject: RE: [Crash-utility] [Crash Utility] Improvement for getting offline CPU register without symbol
> "crash_notes"
>
> Hi James, Nicholas,
>
> sorry for the late reply.
>
> -----Original Message-----
> >
> > Dear Maintaniners,
> >
> >
> >
> > Sorry for attaching a not readable patch file at previous mail.
> >
> > I add the diff of the patch inline for your review.
>
> Thanks.
> but please use text format next time, not HTML email, if possible.
>
> >
> >
> >
> > 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.
>
> Just to clarify, is this not implemented yet?
> So currently the subject should be something like "arm64: Get CPU registers without crash_notes symbol"?
>
> As for the patch itself, I'm fine with it, although it looks like maybe it can be united with the code when
> crash_notes exists.
>
> Thanks,
> Kazu
>
>
> >
> > 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 <Nicholas.tang at mediatek.com>
> >
> >
> >
> > --- 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 ($B=y7D{b(B)
> > Sent: Wednesday, July 7, 2021 3:11 PM
> > To: crash-utility at redhat.com
> > Cc: Nicholas Tang ($BE"?A51(B); James Hsu ($B=y7D{b(B)
> > 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*********************
> >
> > ************* MEDIATEK Confidentiality Notice ******************** The
> > information contained in this e-mail message (including any
> > attachments) may be confidential, proprietary, privileged, or
> > otherwise exempt from disclosure under applicable laws. It is intended
> > to be conveyed only to the designated recipient(s). Any use,
> > dissemination, distribution, printing, retaining or copying of this
> > e-mail (including its
> > attachments) by unintended recipient(s) is strictly prohibited and may
> > be unlawful. If you are not an intended recipient of this e-mail, or
> > believe that you have received this e-mail in error, please notify the
> > sender immediately (by replying to this e-mail), delete any and all
> > copies of this e-mail (including any attachments) from your system,
> > and do not disclose the content of this e-mail to any other person. Thank you!
>
> ************* MEDIATEK Confidentiality Notice ********************
> The information contained in this e-mail message (including any
> attachments) may be confidential, proprietary, privileged, or otherwise
> exempt from disclosure under applicable laws. It is intended to be
> conveyed only to the designated recipient(s). Any use, dissemination,
> distribution, printing, retaining or copying of this e-mail (including its
> attachments) by unintended recipient(s) is strictly prohibited and may
> be unlawful. If you are not an intended recipient of this e-mail, or believe
> that you have received this e-mail in error, please notify the sender
> immediately (by replying to this e-mail), delete any and all copies of
> this e-mail (including any attachments) from your system, and do not
> disclose the content of this e-mail to any other person. Thank you!
More information about the Crash-utility
mailing list