aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/swap.h
diff options
context:
space:
mode:
authorHugh Dickins <hugh.dickins@tiscali.co.uk>2009-12-14 20:58:48 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2009-12-15 11:53:16 -0500
commit7509765a29cfb1a4c506c09b304aaf3b4111c653 (patch)
tree1f2de5381e044b452653a3af0f32e403ffe51931 /include/linux/swap.h
parentaaa468653b4a0d11c603c48d716f765177a5a9e4 (diff)
swap_info: reorder its fields
Reorder (and comment) the fields of swap_info_struct, to make better use of its cachelines: it's good for swap_duplicate() in particular if unsigned int max and swap_map are near the start. Signed-off-by: Hugh Dickins <hugh.dickins@tiscali.co.uk> Cc: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Cc: Rik van Riel <riel@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/swap.h')
-rw-r--r--include/linux/swap.h26
1 files changed, 13 insertions, 13 deletions
diff --git a/include/linux/swap.h b/include/linux/swap.h
index ac43d87b89b0..9f0ca325e30d 100644
--- a/include/linux/swap.h
+++ b/include/linux/swap.h
@@ -167,21 +167,21 @@ struct swap_info_struct {
167 signed short prio; /* swap priority of this type */ 167 signed short prio; /* swap priority of this type */
168 signed char type; /* strange name for an index */ 168 signed char type; /* strange name for an index */
169 signed char next; /* next type on the swap list */ 169 signed char next; /* next type on the swap list */
170 struct file *swap_file; 170 unsigned int max; /* extent of the swap_map */
171 struct block_device *bdev; 171 unsigned char *swap_map; /* vmalloc'ed array of usage counts */
172 struct swap_extent first_swap_extent; 172 unsigned int lowest_bit; /* index of first free in swap_map */
173 struct swap_extent *curr_swap_extent; 173 unsigned int highest_bit; /* index of last free in swap_map */
174 unsigned char *swap_map; 174 unsigned int pages; /* total of usable pages of swap */
175 unsigned int lowest_bit; 175 unsigned int inuse_pages; /* number of those currently in use */
176 unsigned int highest_bit; 176 unsigned int cluster_next; /* likely index for next allocation */
177 unsigned int cluster_nr; /* countdown to next cluster search */
177 unsigned int lowest_alloc; /* while preparing discard cluster */ 178 unsigned int lowest_alloc; /* while preparing discard cluster */
178 unsigned int highest_alloc; /* while preparing discard cluster */ 179 unsigned int highest_alloc; /* while preparing discard cluster */
179 unsigned int cluster_next; 180 struct swap_extent *curr_swap_extent;
180 unsigned int cluster_nr; 181 struct swap_extent first_swap_extent;
181 unsigned int pages; 182 struct block_device *bdev; /* swap device or bdev of swap file */
182 unsigned int max; 183 struct file *swap_file; /* seldom referenced */
183 unsigned int inuse_pages; 184 unsigned int old_block_size; /* seldom referenced */
184 unsigned int old_block_size;
185}; 185};
186 186
187struct swap_list_t { 187struct swap_list_t {