diff options
author | Eric Dumazet <dada1@cosmosbay.com> | 2006-03-25 10:31:46 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-25 12:14:38 -0500 |
commit | dcf36bfa5de6d4e37878d4c98b6986fee4eb8b4c (patch) | |
tree | 6b18d3efd64e55f14209f40ee3232da2ea25d69e /include/asm-x86_64/mmzone.h | |
parent | 40caa884650fc6931cf55918dbf7496c49b3ddf8 (diff) |
[PATCH] x86_64: group memnodemap and memnodeshift in a memnode structure
pfn_to_page() and others need to access both memnode_shift and the very
first bytes of memnodemap[]. If we force memnode_shift to be just before the
memnodemap array, we can reduce the memory footprint to one cache line
instead of two for most setups. This patch introduce a 'memnode' structure
where shift and map[] are carefully placed.
Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Andi Kleen <ak@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include/asm-x86_64/mmzone.h')
-rw-r--r-- | include/asm-x86_64/mmzone.h | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/include/asm-x86_64/mmzone.h b/include/asm-x86_64/mmzone.h index 972c9359f7d7..937f99b26883 100644 --- a/include/asm-x86_64/mmzone.h +++ b/include/asm-x86_64/mmzone.h | |||
@@ -15,8 +15,13 @@ | |||
15 | #define NODEMAPSIZE 0xfff | 15 | #define NODEMAPSIZE 0xfff |
16 | 16 | ||
17 | /* Simple perfect hash to map physical addresses to node numbers */ | 17 | /* Simple perfect hash to map physical addresses to node numbers */ |
18 | extern int memnode_shift; | 18 | struct memnode { |
19 | extern u8 memnodemap[NODEMAPSIZE]; | 19 | int shift; |
20 | u8 map[NODEMAPSIZE]; | ||
21 | } ____cacheline_aligned; | ||
22 | extern struct memnode memnode; | ||
23 | #define memnode_shift memnode.shift | ||
24 | #define memnodemap memnode.map | ||
20 | 25 | ||
21 | extern struct pglist_data *node_data[]; | 26 | extern struct pglist_data *node_data[]; |
22 | 27 | ||