[PATCH] mm: remove alignment padding from anon_vma on (some) 64bit builds

From: Richard Kennedy
Date: Sat Aug 28 2010 - 10:09:56 EST


Reorder structure anon_vma to remove alignment padding on 64 builds when
(CONFIG_KSM || CONFIG_MIGRATION).
This will shrink the size of the anon_vma structure from 40 to 32 bytes
& allow more objects per slab in its kmem_cache.

Under slub the objects in the anon_vma kmem_cache will then be 40 bytes
with 102 objects per slab.
(On v2.6.36 without this patch,the size is 48 bytes and 85
objects/slab.)

compiled & tested on x86_64 using SLUB

Signed-off-by: Richard Kennedy <richard@xxxxxxxxxxxxxxx>
---
patch against v2.6.36-rc2
compiled & tested on x86_64 AMD X2

regards
Richard


diff --git a/include/linux/rmap.h b/include/linux/rmap.h
index 31b2fd7..5c98df6 100644
--- a/include/linux/rmap.h
+++ b/include/linux/rmap.h
@@ -25,8 +25,8 @@
* pointing to this anon_vma once its vma list is empty.
*/
struct anon_vma {
- spinlock_t lock; /* Serialize access to vma list */
struct anon_vma *root; /* Root of this anon_vma tree */
+ spinlock_t lock; /* Serialize access to vma list */
#if defined(CONFIG_KSM) || defined(CONFIG_MIGRATION)

/*


--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/