]> err.no Git - linux-2.6/commitdiff
[PATCH] mm/slab.c: prefetchw the start of new allocated objects
authorEric Dumazet <dada1@cosmosbay.com>
Sat, 3 Sep 2005 22:55:06 +0000 (15:55 -0700)
committerLinus Torvalds <torvalds@evo.osdl.org>
Mon, 5 Sep 2005 07:05:48 +0000 (00:05 -0700)
Mostobjects returned by __cache_alloc() will be written by the caller,
(but not all callers want to write all the object, but just at the
begining) prefetchw() tells the modern CPU to think about the future
writes, ie start some memory transactions in advance.

Signed-off-by: Eric Dumazet <dada1@cosmosbay.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
mm/slab.c

index 59d382fbca1ccf74faafe538b600d92e4ea01dd0..75127a6f1fd9d604cc8c0bc2ddf2db3bac887735 100644 (file)
--- a/mm/slab.c
+++ b/mm/slab.c
@@ -2166,7 +2166,9 @@ static inline void *__cache_alloc(kmem_cache_t *cachep, unsigned int __nocast fl
                objp = cache_alloc_refill(cachep, flags);
        }
        local_irq_restore(save_flags);
-       objp = cache_alloc_debugcheck_after(cachep, flags, objp, __builtin_return_address(0));
+       objp = cache_alloc_debugcheck_after(cachep, flags, objp,
+                                       __builtin_return_address(0));
+       prefetchw(objp);
        return objp;
 }