Page MenuHomeFreeBSD

powerpc/radix: synchronize temporary kernel mappings
AcceptedPublic

Authored by mchoo on Wed, Sep 16, 4:04 PM.
Tags
None
Referenced Files
Unknown Object (File)
Thu, Sep 17, 5:34 PM
Unknown Object (File)
Thu, Sep 17, 7:40 AM
Unknown Object (File)
Thu, Sep 17, 12:02 AM
Unknown Object (File)
Wed, Sep 16, 10:16 PM
Unknown Object (File)
Wed, Sep 16, 10:14 PM
Subscribers

Details

Reviewers
jhb
adrian
ivy
jhibbits
Group Reviewers
PowerPC
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 Skipped
Unit
No Test Coverage
Build Status
Buildable 76978
Build 73861: arc lint + arc unit