diff options
author | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-04 12:08:32 -0500 |
---|---|---|
committer | Russell King <rmk+kernel@arm.linux.org.uk> | 2010-12-05 03:39:36 -0500 |
commit | daf8741675562197d4fb4c4e9d773f53494203a5 (patch) | |
tree | a21505624d4c7963ae70e46f25b13f449c22cc18 | |
parent | 0b05da7200dd56a5364c4d9cf5441715c1d706ed (diff) |
ARM: implement support for read-mostly sections
As our SMP implementation uses MESI protocols. Grouping together data
which is mostly only read together means that we avoid unnecessary
cache line bouncing when this code shares a cache line with other data.
In other words, cache lines associated with read-mostly data are
expected to spend most of their time in shared state.
Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
-rw-r--r-- | arch/arm/include/asm/cache.h | 2 | ||||
-rw-r--r-- | arch/arm/kernel/vmlinux.lds.S | 1 |
2 files changed, 3 insertions, 0 deletions
diff --git a/arch/arm/include/asm/cache.h b/arch/arm/include/asm/cache.h index 9d6122096fbe..75fe66bc02b4 100644 --- a/arch/arm/include/asm/cache.h +++ b/arch/arm/include/asm/cache.h | |||
@@ -23,4 +23,6 @@ | |||
23 | #define ARCH_SLAB_MINALIGN 8 | 23 | #define ARCH_SLAB_MINALIGN 8 |
24 | #endif | 24 | #endif |
25 | 25 | ||
26 | #define __read_mostly __attribute__((__section__(".data..read_mostly"))) | ||
27 | |||
26 | #endif | 28 | #endif |
diff --git a/arch/arm/kernel/vmlinux.lds.S b/arch/arm/kernel/vmlinux.lds.S index cead8893b46b..1581f6d18cca 100644 --- a/arch/arm/kernel/vmlinux.lds.S +++ b/arch/arm/kernel/vmlinux.lds.S | |||
@@ -167,6 +167,7 @@ SECTIONS | |||
167 | 167 | ||
168 | NOSAVE_DATA | 168 | NOSAVE_DATA |
169 | CACHELINE_ALIGNED_DATA(32) | 169 | CACHELINE_ALIGNED_DATA(32) |
170 | READ_MOSTLY_DATA(32) | ||
170 | 171 | ||
171 | /* | 172 | /* |
172 | * The exception fixup table (might need resorting at runtime) | 173 | * The exception fixup table (might need resorting at runtime) |