ARM: implement support for read-mostly sections
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sat, 4 Dec 2010 17:08:32 +0000 (17:08 +0000)
committerRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 5 Dec 2010 08:39:36 +0000 (08:39 +0000)
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>
arch/arm/include/asm/cache.h
arch/arm/kernel/vmlinux.lds.S

index 9d6122096fbec40ad41ab473c189722816225399..75fe66bc02b420014f37459c1ad786d49b1529c0 100644 (file)
@@ -23,4 +23,6 @@
 #define ARCH_SLAB_MINALIGN 8
 #endif
 
+#define __read_mostly __attribute__((__section__(".data..read_mostly")))
+
 #endif
index cead8893b46bc2d91ac156b9c8382c8aa4ebc71f..1581f6d18ccad57ac5f8b6338327750727b6afd2 100644 (file)
@@ -167,6 +167,7 @@ SECTIONS
 
                NOSAVE_DATA
                CACHELINE_ALIGNED_DATA(32)
+               READ_MOSTLY_DATA(32)
 
                /*
                 * The exception fixup table (might need resorting at runtime)