Skip to contentSkip to conversation

memory page_alloc zonelist caching reorder structure

PATCH New Paul Jackson 1 participant 1 message Oct 19, 2006

Subsystems (3)
lore
Share & tools
lore
#0 lore raw

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.

---

 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>