summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorAndrew Morton <akpm@digeo.com>2002-12-29 21:40:44 -0800
committerLinus Torvalds <torvalds@home.transmeta.com>2002-12-29 21:40:44 -0800
commitd83f033a39a4bbe52b6c1ffd14bd994e70f9b6fe (patch)
treecac4bf607c9268acfe1d4b866103d9c339803aa2
parent29621f41b70cb609f46db52e2a92faca9e6186ea (diff)
[PATCH] Don't cacheline-align vm_area_struct
Some workloads (Oracle...) use a huge number of VMA's. They are currently a tidy 64 bytes in size, and padding them out to 128 on P4's is not worthwhile.
-rw-r--r--include/linux/mm.h3
-rw-r--r--kernel/fork.c2
2 files changed, 4 insertions, 1 deletions
diff --git a/include/linux/mm.h b/include/linux/mm.h
index df49cb472866..70177c796b12 100644
--- a/include/linux/mm.h
+++ b/include/linux/mm.h
@@ -41,6 +41,9 @@ extern int page_cluster;
* per VM-area/task. A VM area is any part of the process virtual memory
* space that has a special rule for the page-fault handlers (ie a shared
* library, the executable area etc).
+ *
+ * This structure is exactly 64 bytes on ia32. Please think very, very hard
+ * before adding anything to it.
*/
struct vm_area_struct {
struct mm_struct * vm_mm; /* The address space we belong to. */
diff --git a/kernel/fork.c b/kernel/fork.c
index 6f7298827344..56f12f280dd3 100644
--- a/kernel/fork.c
+++ b/kernel/fork.c
@@ -1078,7 +1078,7 @@ void __init proc_caches_init(void)
vm_area_cachep = kmem_cache_create("vm_area_struct",
sizeof(struct vm_area_struct), 0,
- SLAB_HWCACHE_ALIGN, NULL, NULL);
+ 0, NULL, NULL);
if(!vm_area_cachep)
panic("vma_init: Cannot alloc vm_area_struct SLAB cache");