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
Unknown Object (File)
Mon, Oct 21, 9:10 AM
Unknown Object (File)
Oct 14 2024, 12:51 PM
Unknown Object (File)
Oct 13 2024, 11:10 PM
Unknown Object (File)
Sep 19 2024, 5:40 AM
Unknown Object (File)
Sep 18 2024, 7:32 PM
Unknown Object (File)
Sep 18 2024, 1:40 PM
Unknown Object (File)
Sep 3 2024, 12:26 AM
Unknown Object (File)
Sep 3 2024, 12:18 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 Not Applicable
Unit
Tests Not Applicable

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.