slub: use correct parameter to add a page to partial list tail
authorShaohua Li <shaohua.li@intel.com>
Fri, 11 Nov 2011 00:33:48 +0000 (08:33 +0800)
committerPekka Enberg <penberg@kernel.org>
Tue, 15 Nov 2011 18:37:15 +0000 (20:37 +0200)
unfreeze_partials() needs add the page to partial list tail, since such page
hasn't too many free objects. We now explictly use DEACTIVATE_TO_TAIL for this,
while DEACTIVATE_TO_TAIL != 1. This will cause performance regression (eg, more
lock contention in node->list_lock) without below fix.

Signed-off-by: Shaohua Li <shaohua.li@intel.com>
Acked-by: Christoph Lameter <cl@linux.com>
Acked-by: David Rientjes <rientjes@google.com>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
mm/slub.c

index 7d2a996c307e4306bd233f4ae340a02d6915ffb1..60e16c43f88c89ab1832b03070d73f6c6e697967 100644 (file)
--- a/mm/slub.c
+++ b/mm/slub.c
@@ -1904,7 +1904,8 @@ static void unfreeze_partials(struct kmem_cache *s)
                                if (l == M_PARTIAL)
                                        remove_partial(n, page);
                                else
-                                       add_partial(n, page, 1);
+                                       add_partial(n, page,
+                                               DEACTIVATE_TO_TAIL);
 
                                l = m;
                        }