Page MenuHomeFreeBSD

[PPC64] Initial libkvm minidump implementation
Needs ReviewPublic

Authored by luporl on Fri, Sep 6, 6:48 PM.

Details

Reviewers
bdragon
jhibbits
Summary

This change adds PowerPC64 support for minidumps on libkvm.

Address translation, page walk, and data retrieval were tested and seem to be working correctly.

This enables crashinfo to start gathering information about a kernel minidump, although there are still several issues, but most seem to be related to missing pages in the kernel minidump.

Diff Detail

Lint
Lint OK
Unit
No Unit Test Coverage
Build Status
Buildable 26478
Build 24898: arc lint + arc unit

Event Timeline

luporl created this revision.Fri, Sep 6, 6:48 PM
mhorne added a subscriber: mhorne.Sun, Sep 8, 4:00 PM
mhorne added inline comments.
lib/libkvm/kvm_minidump_powerpc64.c
4

You can remove my copyright from this since it is only really for the RISC-V specific bits.

jhibbits added inline comments.Mon, Sep 9, 7:57 PM
lib/libkvm/kvm_private.c
135 ↗(On Diff #61752)

Maybe we can also add EM_PPC to this, since 32-bit powerpc kernels are ET_DYN. A separate change. But, maybe this change itself can be isolated to a different diff, and committed as adding powerpc* support to the probe function?

luporl updated this revision to Diff 61880.Tue, Sep 10, 1:22 PM
  • Address reviews' comments

_kvm_probe_elf_kernel() change was moved to a separate change

luporl marked an inline comment as done.Tue, Sep 10, 1:25 PM
luporl added inline comments.
lib/libkvm/kvm_minidump_powerpc64.c
4

Ok, thanks.

luporl marked an inline comment as done.Tue, Sep 10, 1:25 PM
luporl updated this revision to Diff 62054.Fri, Sep 13, 6:57 PM
  • [PPC64] Handle relocated kernels properly
  • Merge branch 'master' into luporl-crashdump-libkvm

This is very specific to AIM64 HPT. Can you rename it to kvm_..._hpt.c, or something, and add another key to the header to probe against for the particular pmap implementation? I'll want to add Book-E support, as well as AIM Radix when we do finally get radix stabilized.