memory page_alloc zonelist caching reorder structure
Subsystems (3)
PATCH 2/2 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 <[email protected]>
---
include/linux/mmzone.h | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-)
include/linux/mmzone.h +1 -1
@@ -374,8 +374,8 @@ struct zone {struct zonelist_cache { - DECLARE_BITMAP(fullzones, MAX_ZONES_PER_ZONELIST); /* zone full? */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) */ };#else
Signature · 9 lines
I won't rest till it's the best ...
Programmer, Linux Scalability
Paul Jackson <[email protected]> 1.925.600.0401
--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to [email protected]. For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"[email protected]"> [email protected] </a>