aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRussell King <rmk+kernel@arm.linux.org.uk>2010-12-04 12:08:32 -0500
committerRussell King <rmk+kernel@arm.linux.org.uk>2010-12-05 03:39:36 -0500
commitdaf8741675562197d4fb4c4e9d773f53494203a5 (patch)
treea21505624d4c7963ae70e46f25b13f449c22cc18
parent0b05da7200dd56a5364c4d9cf5441715c1d706ed (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.h2
-rw-r--r--arch/arm/kernel/vmlinux.lds.S1
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)