forked from Minki/linux
[PATCH] memory page_alloc zonelist caching reorder structure
Rearrange the struct members in the 'struct zonelist_cache' structure, so as to put the readonly (once initialized) z_to_n[] array first, where it will come right after the zones[] array in struct zonelist. This pretty much eliminates the chance that the two frequently written elements of 'struct zonelist_cache', the fullzones bitmap and last_full_zap times, will end up on the same cache line as the performance sensitive, frequently read, never (after init) written zones[] array. Keeping frequently written data off frequently read cache lines is good for performance. Thanks to Rohit Seth for the suggestion. Signed-off-by: Paul Jackson <pj@sgi.com> Cc: Rohit Seth <rohitseth@google.com> Cc: Paul Menage <menage@google.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
9276b1bc96
commit
7253f4ef04
|
@ -352,8 +352,8 @@ struct zone {
|
||||||
|
|
||||||
|
|
||||||
struct zonelist_cache {
|
struct zonelist_cache {
|
||||||
DECLARE_BITMAP(fullzones, MAX_ZONES_PER_ZONELIST); /* zone full? */
|
|
||||||
unsigned short z_to_n[MAX_ZONES_PER_ZONELIST]; /* zone->nid */
|
unsigned short z_to_n[MAX_ZONES_PER_ZONELIST]; /* zone->nid */
|
||||||
|
DECLARE_BITMAP(fullzones, MAX_ZONES_PER_ZONELIST); /* zone full? */
|
||||||
unsigned long last_full_zap; /* when last zap'd (jiffies) */
|
unsigned long last_full_zap; /* when last zap'd (jiffies) */
|
||||||
};
|
};
|
||||||
#else
|
#else
|
||||||
|
|
Loading…
Reference in New Issue
Block a user