diff options
author | Shaohua Li <shaohua.li@intel.com> | 2011-11-11 08:33:48 +0800 |
---|---|---|
committer | Pekka Enberg <penberg@kernel.org> | 2011-11-15 20:37:15 +0200 |
commit | f64ae042d94d376b54e7a343d93c48561e9d2e16 (patch) | |
tree | da4a9c1b06e5e1234cad1f2b7ae6dc3c372b26cc /mm/slub.c | |
parent | 1ea6b8f48918282bdca0b32a34095504ee65bab5 (diff) | |
download | lwn-f64ae042d94d376b54e7a343d93c48561e9d2e16.tar.gz lwn-f64ae042d94d376b54e7a343d93c48561e9d2e16.zip |
slub: use correct parameter to add a page to partial list tail
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>
Diffstat (limited to 'mm/slub.c')
-rw-r--r-- | mm/slub.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/mm/slub.c b/mm/slub.c index 7d2a996c307e..60e16c43f88c 100644 --- 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; } |