Page MenuHomeFreeBSD

powerpc/radix: synchronize temporary kernel mappings
ClosedPublic

Authored by mchoo on Wed, Sep 16, 4:04 PM.
Tags
None
Referenced Files
Unknown Object (File)
Fri, Oct 9, 7:32 AM
Unknown Object (File)
Tue, Oct 6, 8:23 PM
Unknown Object (File)
Sun, Oct 4, 11:05 AM
Unknown Object (File)
Sat, Oct 3, 10:16 PM
Unknown Object (File)
Sat, Oct 3, 1:27 AM
Unknown Object (File)
Fri, Oct 2, 7:56 PM
Unknown Object (File)
Thu, Oct 1, 3:34 AM
Unknown Object (File)
Wed, Sep 30, 7:41 AM
Subscribers

Details

Summary

The radix kremove implementation cleared a kernel PTE without
invalidating its TLB entry. Reusing crashdumpmap could therefore keep
accessing an old physical page, causing minidumps to contain repeated
stale page contents.

Invalidate the removed kernel mapping and synchronize newly installed
kernel PTEs before they are accessed.

Fixes: 65bbba25d214 ("powerpc64: Implement Radix MMU for POWER9 CPUs")
MFC after: 2 weeks
MFC to: stable/14, stable/15
Sponsored by: FreeBSD Foundation

Test Plan

With radix mmu minidump implementation that will be posted later, this works correctly.
Without this, debuggers show corrupted memory content, thus LLDB cannot read allproc,
stoppcbs, etc correctly and thus displays zero threads.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

mchoo requested review of this revision.Wed, Sep 16, 4:04 PM
This revision is now accepted and ready to land.Thu, Sep 17, 12:53 AM