diff options
author | attilio <attilio@FreeBSD.org> | 2012-10-31 13:38:56 +0000 |
---|---|---|
committer | attilio <attilio@FreeBSD.org> | 2012-10-31 13:38:56 +0000 |
commit | b9e5ac8e1ce9f8dbec2f8ab42e0c36e0eb7c0244 (patch) | |
tree | ad03c11ad8da0f2c0561fe4449cfa1b4faea70e8 /UPDATING | |
parent | 245c75ddd9d9843e079e3280fcd1c008b66baf3e (diff) | |
download | FreeBSD-src-b9e5ac8e1ce9f8dbec2f8ab42e0c36e0eb7c0244.zip FreeBSD-src-b9e5ac8e1ce9f8dbec2f8ab42e0c36e0eb7c0244.tar.gz |
Give mtx(9) the ability to crunch different type of structures, with the
only constraint that they have a lock cookie named mtx_lock.
This name, then, becames reserved from the struct that wants to use the
mtx(9) KPI and other locking primitives cannot reuse it for their
members.
Namely such structs are the current struct mtx and the new
struct mtx_padalign. The new structure will define an object which is
the same as the same layout of a struct mtx but will be allocated in
areas aligned to the cache line size and will be as big as a cache line.
This is supposed to give higher performance for highly contented mutexes
both spin or sleep (because of the adaptive spinning), where the cache
line contention results in too much traffic on the system bus.
The struct mtx_padalign can be used in a completely transparent way
with the mtx(9) KPI.
At the moment, a possibility to MFC the patch should be carefully
evaluated because this patch breaks the low level KPI
(not its representation though).
Discussed with: jhb
Reviewed by: jeff, andre
Reviewed by: mdf (earlier version)
Tested by: jimharris
Diffstat (limited to 'UPDATING')
0 files changed, 0 insertions, 0 deletions