Some things I wish I hadn’t seen
summary
Finds real code patterns in the .NET runtime and a Microsoft project that use flush_process_write_buffers as an intentionally heavyweight IPI to restore sequential reasoning so fast paths can use only relaxed atomics, reports Tsan disagreement when a prototype replaced acquire/release with relaxed plus that IPI, and shows JIT-time patching that needs both instruction-cache flush and a process-wide write-buffer flush to avoid stale code on other cores; cites Linux mbarrier and a C++ technical specification as related fixes and says changes go through production rings for testing.
AI-written summary · about
chapters (6)
- 0:00Introduction
- 2:14Flush process write buffers
- 8:00Asymmetric memory barriers
- 11:54Performance trade-offs
- 16:32Updating JIT runtime code
- 19:51Q&A
related talks
01h 04mDebugging data races
01h 14mMultithreading in UI application: When some threads are more equal than others
48m“Is Parallel Programming still hard? PART 2 of 2”
01h 11mProgramming language memory models: Problems, solutions, and directions
43mC++ Atomics...
01h 00mOut-of-order execution - what can it do for me?
50mThe Hidden Art of Thread-Safe Programming: Exploring java.util.con...
01h 03mBuilding responsive and scalable applications
