summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShaohua Li <shaohua.li@intel.com>2011-05-24 17:11:18 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2011-05-25 08:39:03 -0700
commit34679d7eac9ecc20face093db9aa610f1e9c893a (patch)
treeb959da55ed4ff4f4bbd536320cb8205377a46301
parent7bf02ea22c6cdd09e2d3f1d3c3fe366b834ae9af (diff)
downloadlinux-3.10-34679d7eac9ecc20face093db9aa610f1e9c893a.tar.gz
linux-3.10-34679d7eac9ecc20face093db9aa610f1e9c893a.tar.bz2
linux-3.10-34679d7eac9ecc20face093db9aa610f1e9c893a.zip
mmap: add alignment for some variables
Make some variables have correct alignment/section to avoid cache issue. In a workload which heavily does mmap/munmap, the variables will be used frequently. Signed-off-by: Shaohua Li <shaohua.li@intel.com> Cc: Andi Kleen <andi@firstfloor.org> Cc: Rik van Riel <riel@redhat.com> Cc: Hugh Dickins <hughd@google.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
-rw-r--r--mm/mmap.c10
1 files changed, 7 insertions, 3 deletions
diff --git a/mm/mmap.c b/mm/mmap.c
index 772140c53ab..eaec3df82a2 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -84,10 +84,14 @@ pgprot_t vm_get_page_prot(unsigned long vm_flags)
}
EXPORT_SYMBOL(vm_get_page_prot);
-int sysctl_overcommit_memory = OVERCOMMIT_GUESS; /* heuristic overcommit */
-int sysctl_overcommit_ratio = 50; /* default is 50% */
+int sysctl_overcommit_memory __read_mostly = OVERCOMMIT_GUESS; /* heuristic overcommit */
+int sysctl_overcommit_ratio __read_mostly = 50; /* default is 50% */
int sysctl_max_map_count __read_mostly = DEFAULT_MAX_MAP_COUNT;
-struct percpu_counter vm_committed_as;
+/*
+ * Make sure vm_committed_as in one cacheline and not cacheline shared with
+ * other variables. It can be updated by several CPUs frequently.
+ */
+struct percpu_counter vm_committed_as ____cacheline_aligned_in_smp;
/*
* Check that a process has enough memory to allocate a new virtual