On a 64 byte cache line CPU (amd64), m_owner is contended by all of
the shared processes. However, after finding one winner, mtx is
enqueued, which trigger a cache refresh from other processors. Reorder
mtx so that m_lock and m_qu will not be in the same cache line.
Details
Details
Diff Detail
Diff Detail
- Repository
- rG FreeBSD src repository
- Lint
Lint Passed - Unit
No Test Coverage - Build Status
Buildable 77802 Build 74685: arc lint + arc unit
Event Timeline
| lib/libthr/thread/thr_private.h | ||
|---|---|---|
| 177 | I'd amend this comment to explain that it's preferable to keep the linkage fields in a separate cache line. | |
| lib/libthr/thread/thr_private.h | ||
|---|---|---|
| 177 | Thanks! I will also add some assertion test on LPI64 to indicate that these should not be sit in the same cache line. | |