summaryrefslogtreecommitdiffstats
path: root/mm/slab.c
diff options
context:
space:
mode:
authorChristoph Lameter2006-01-19 02:42:37 +0100
committerLinus Torvalds2006-01-19 04:20:18 +0100
commit86c562a9d6683063e071692fe14e0a18e64ee1be (patch)
treedd64f8bff4624f17f2245aeadf962e0d6d5974a0 /mm/slab.c
parent[PATCH] NUMA policies in the slab allocator V2 (diff)
downloadkernel-qcow2-linux-86c562a9d6683063e071692fe14e0a18e64ee1be.tar.gz
kernel-qcow2-linux-86c562a9d6683063e071692fe14e0a18e64ee1be.tar.xz
kernel-qcow2-linux-86c562a9d6683063e071692fe14e0a18e64ee1be.zip
[PATCH] mm: optimize numa policy handling in slab allocator
Move the interrupt check from slab_node into ___cache_alloc and adds an "unlikely()" to avoid pipeline stalls on some architectures. Signed-off-by: Christoph Lameter <clameter@sgi.com> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'mm/slab.c')
-rw-r--r--mm/slab.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/mm/slab.c b/mm/slab.c
index 9025608696ec..6f8495e2185b 100644
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2574,7 +2574,7 @@ static inline void *____cache_alloc(kmem_cache_t *cachep, gfp_t flags)
struct array_cache *ac;
#ifdef CONFIG_NUMA
- if (current->mempolicy) {
+ if (unlikely(current->mempolicy && !in_interrupt())) {
int nid = slab_node(current->mempolicy);
if (nid != numa_node_id())