5fd63b3085
vSMP specific alignment patch to 1. Define INTERNODE_CACHE_SHIFT for vSMP 2. Use this for alignment of critical structures 3. Use INTERNODE_CACHE_SHIFT for ARCH_MIN_TASKALIGN, and let the slab align task_struct allocations to the internode cacheline size 4. Introduce and use ARCH_MIN_MMSTRUCT_ALIGN for mm_struct slab allocations. Signed-off-by: Ravikiran Thirumalai <kiran@scalemp.com> Signed-off-by: Shai Fultheim <shai@scalemp.com> Signed-off-by: Andi Kleen <ak@suse.de> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
25 lines
556 B
C
25 lines
556 B
C
/*
|
|
* include/asm-x8664/cache.h
|
|
*/
|
|
#ifndef __ARCH_X8664_CACHE_H
|
|
#define __ARCH_X8664_CACHE_H
|
|
|
|
#include <linux/config.h>
|
|
|
|
/* L1 cache line size */
|
|
#define L1_CACHE_SHIFT (CONFIG_X86_L1_CACHE_SHIFT)
|
|
#define L1_CACHE_BYTES (1 << L1_CACHE_SHIFT)
|
|
|
|
#ifdef CONFIG_X86_VSMP
|
|
|
|
/* vSMP Internode cacheline shift */
|
|
#define INTERNODE_CACHE_SHIFT (12)
|
|
#ifdef CONFIG_SMP
|
|
#define __cacheline_aligned_in_smp \
|
|
__attribute__((__aligned__(1 << (INTERNODE_CACHE_SHIFT)))) \
|
|
__attribute__((__section__(".data.page_aligned")))
|
|
#endif
|
|
|
|
#endif
|
|
|
|
#endif
|