Skip to contentSkip to conversation

change pagevec counters back to unsigned long and cacheline align

PATCH New Marcelo Tosatti 1 participant 1 message Oct 18, 2004 Memory management

lore
Share & tools
lore
#0 lore raw

PATCH 1/1 change pagevec counters back to unsigned long and cacheline align

Change pagevec "nr" and "cold" back to "unsigned long", because 4 byte accesses can be slow on architectures < Pentium III (additional "data16" operand on instruction).

This still honours the cacheline alignment, making the size of "pagevec" structure a power of two (either 64 or 128 bytes).

Haven't been able to see any significant change on performance on my limited testing.

include/linux/pagevec.h +4 -3
@@ -5,14 +5,15 @@
  * pages.  A pagevec is a multipage container which is used for that.
  */
 
-#define PAGEVEC_SIZE	15
+/* 14 pointers + two long's align the pagevec structure to a power of two */
+#define PAGEVEC_SIZE	14
 
 struct page;
 struct address_space;
 
 struct pagevec {
-	unsigned short nr;
-	unsigned short cold;
+	unsigned long nr;
+	unsigned long cold;
 	struct page *pages[PAGEVEC_SIZE];
 };
 

----- End forwarded message -----
--
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>