diff options
| author | Christian Borntraeger <cborntra@de.ibm.com> | 2006-04-27 21:40:24 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-04-28 11:33:48 -0400 |
| commit | 58268b97f679108d32a882a7fc029585da801975 (patch) | |
| tree | 5b416785ab2fc75f5f26f56863b96329e274fe08 | |
| parent | b73d40c6178f2c8b2d574db566b47f36e3d12072 (diff) | |
[PATCH] s390: add read_mostly optimization
Add a read_mostly section and define __read_mostly to prevent cache line
pollution due to writes for mostly read variables. In addition fix the
incorrect alignment of the cache_line_aligned data section. s390 has a
cacheline size of 256 bytes.
Signed-off-by: Christian Borntraeger <cborntra@de.ibm.com>
Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
| -rw-r--r-- | arch/s390/kernel/vmlinux.lds.S | 4 | ||||
| -rw-r--r-- | include/asm-s390/cache.h | 2 |
2 files changed, 5 insertions, 1 deletions
diff --git a/arch/s390/kernel/vmlinux.lds.S b/arch/s390/kernel/vmlinux.lds.S index 9289face3027..9f34bb54c051 100644 --- a/arch/s390/kernel/vmlinux.lds.S +++ b/arch/s390/kernel/vmlinux.lds.S | |||
| @@ -58,9 +58,11 @@ SECTIONS | |||
| 58 | . = ALIGN(4096); | 58 | . = ALIGN(4096); |
| 59 | .data.page_aligned : { *(.data.idt) } | 59 | .data.page_aligned : { *(.data.idt) } |
| 60 | 60 | ||
| 61 | . = ALIGN(32); | 61 | . = ALIGN(256); |
| 62 | .data.cacheline_aligned : { *(.data.cacheline_aligned) } | 62 | .data.cacheline_aligned : { *(.data.cacheline_aligned) } |
| 63 | 63 | ||
| 64 | . = ALIGN(256); | ||
| 65 | .data.read_mostly : { *(.data.read_mostly) } | ||
| 64 | _edata = .; /* End of data section */ | 66 | _edata = .; /* End of data section */ |
| 65 | 67 | ||
| 66 | . = ALIGN(8192); /* init_task */ | 68 | . = ALIGN(8192); /* init_task */ |
diff --git a/include/asm-s390/cache.h b/include/asm-s390/cache.h index e20cdd9074db..cdf431b061bb 100644 --- a/include/asm-s390/cache.h +++ b/include/asm-s390/cache.h | |||
| @@ -16,4 +16,6 @@ | |||
| 16 | 16 | ||
| 17 | #define ARCH_KMALLOC_MINALIGN 8 | 17 | #define ARCH_KMALLOC_MINALIGN 8 |
| 18 | 18 | ||
| 19 | #define __read_mostly __attribute__((__section__(".data.read_mostly"))) | ||
| 20 | |||
| 19 | #endif | 21 | #endif |
