ARM: implement support for read-mostly sections
Russell King [Sat, 4 Dec 2010 17:08:32 +0000 (17:08 +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 9d61220..75fe66b 100644 (file)
@@ -23,4 +23,6 @@
 #define ARCH_SLAB_MINALIGN 8
 #endif
 
+#define __read_mostly __attribute__((__section__(".data..read_mostly")))
+
 #endif
index cead889..1581f6d 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)