diff options
author | mjg <mjg@FreeBSD.org> | 2017-12-31 03:06:29 +0000 |
---|---|---|
committer | Luiz Souza <luiz@netgate.com> | 2018-02-21 15:15:33 -0300 |
commit | 2546f9b8e48cef95bc882b68d42e05ca3f33078d (patch) | |
tree | 1ca675983c2ea928aeb45af42d4902ae56e8cf0a /sys/vm/vm_pager.c | |
parent | 4fdf0fa3bcd504bb021d3d74993bae954a87fc11 (diff) | |
download | FreeBSD-src-2546f9b8e48cef95bc882b68d42e05ca3f33078d.zip FreeBSD-src-2546f9b8e48cef95bc882b68d42e05ca3f33078d.tar.gz |
MFC r323234,r323305,r323306,r324044:
Start annotating global _padalign locks with __exclusive_cache_line
While these locks are guarnteed to not share their respective cache lines,
their current placement leaves unnecessary holes in lines which preceeded them.
For instance the annotation of vm_page_queue_free_mtx allows 2 neighbour
cachelines (previously separate by the lock) to be collapsed into 1.
The annotation is only effective on architectures which have it implemented in
their linker script (currently only amd64). Thus locks are not converted to
their not-padaligned variants as to not affect the rest.
=============
Annotate global process locks with __exclusive_cache_line
=============
Annotate Giant with __exclusive_cache_line
=============
Annotate sysctlmemlock with __exclusive_cache_line.
(cherry picked from commit dc9eed165c25d9af290b93f577ad7ac9d7b3788c)
Diffstat (limited to 'sys/vm/vm_pager.c')
-rw-r--r-- | sys/vm/vm_pager.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/vm/vm_pager.c b/sys/vm/vm_pager.c index 45d0c27..3625b41 100644 --- a/sys/vm/vm_pager.c +++ b/sys/vm/vm_pager.c @@ -165,7 +165,7 @@ struct pagerops *pagertab[] = { * cleaning requests (NPENDINGIO == 64) * the maximum swap cluster size * (MAXPHYS == 64k) if you want to get the most efficiency. */ -struct mtx_padalign pbuf_mtx; +struct mtx_padalign __exclusive_cache_line pbuf_mtx; static TAILQ_HEAD(swqueue, buf) bswlist; static int bswneeded; vm_offset_t swapbkva; /* swap buffers kva */ |