svn commit: r323235 - in head/sys: conf sys
Mateusz Guzik
mjg at FreeBSD.org
Wed Sep 6 20:32:52 UTC 2017
Author: mjg
Date: Wed Sep 6 20:32:49 2017
New Revision: 323235
URL: https://svnweb.freebsd.org/changeset/base/323235
Log:
Introduce __read_frequently
While __read_mostly groups variables together, their placement is not
specified. In particular 2 frequently used variables can end up in
different lines.
This annotation is only expected to be used for variables read all the time,
e.g. on each syscall entry.
MFC after: 1 week
Modified:
head/sys/conf/ldscript.amd64
head/sys/sys/systm.h
Modified: head/sys/conf/ldscript.amd64
==============================================================================
--- head/sys/conf/ldscript.amd64 Wed Sep 6 20:28:18 2017 (r323234)
+++ head/sys/conf/ldscript.amd64 Wed Sep 6 20:32:49 2017 (r323235)
@@ -146,6 +146,10 @@ SECTIONS
. = DATA_SEGMENT_RELRO_END (24, .);
.got.plt : { *(.got.plt) }
. = ALIGN(64);
+ .data.read_frequently :
+ {
+ *(.data.read_frequently)
+ }
.data.read_mostly :
{
*(.data.read_mostly)
Modified: head/sys/sys/systm.h
==============================================================================
--- head/sys/sys/systm.h Wed Sep 6 20:28:18 2017 (r323234)
+++ head/sys/sys/systm.h Wed Sep 6 20:32:49 2017 (r323235)
@@ -138,6 +138,7 @@ void kassert_panic(const char *fmt, ...) __printflike
* Align variables.
*/
#define __read_mostly __section(".data.read_mostly")
+#define __read_frequently __section(".data.read_frequently")
#define __exclusive_cache_line __aligned(CACHE_LINE_SIZE) \
__section(".data.exclusive_cache_line")
/*
More information about the svn-src-head
mailing list