Page MenuHomeFreeBSD

MFC r368649 / 3fd989da by kib: amd64 pmap: fix PCID mode invalidations
ClosedPublic

Authored by avg on Dec 13 2021, 12:40 PM.
Tags
None
Referenced Files
F122156712: D33413.id99922.diff
Wed, Jul 2, 7:21 PM
Unknown Object (File)
Mon, Jun 23, 9:42 PM
Unknown Object (File)
Sat, Jun 21, 4:35 PM
Unknown Object (File)
Wed, Jun 18, 3:44 PM
Unknown Object (File)
Sun, Jun 15, 8:15 PM
Unknown Object (File)
Sat, Jun 14, 12:39 AM
Unknown Object (File)
Wed, Jun 11, 10:56 PM
Unknown Object (File)
May 31 2025, 7:05 AM
Subscribers

Details

Summary

r368649 fixed a regression in r362031 that was MFC-ed to stable/12 as
a part of r362572. That commit reordered IPI send and local TLB flush in
TLB invalidations.

Without this fix we've been seeing problems with stale memory content
where changes done under a mutex were not immediately observed by
another thread after taking the same mutex. Those inconsistenices were
correlated to copy-on-write faults for pages contaning the data.

The change needed some adaptations as I elected to skip two significant
intermediate changes:

  • r363195 / dc43978a, amd64: allow parallel shootdown IPIs
  • r363311 / 3ec7e169, amd64 pmap: microoptimize local shootdowns for PCID PTI configurations

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Passed
Unit
No Test Coverage
Build Status
Buildable 43310
Build 40198: arc lint + arc unit

Event Timeline

avg requested review of this revision.Dec 13 2021, 12:40 PM
This revision is now accepted and ready to land.Dec 13 2021, 1:39 PM

Do we want to make this an EN for 12.3 as well?

Do we want to make this an EN for 12.3 as well?

I think that some people may appreciate it, especially if the Go deadlocks / crashes also have the same root cause.