slub: use free_page instead of put_page for freeing kmalloc allocation
authorGlauber Costa <glommer@parallels.com>
Fri, 3 Aug 2012 18:51:37 +0000 (22:51 +0400)
committerPekka Enberg <penberg@kernel.org>
Thu, 16 Aug 2012 06:25:03 +0000 (09:25 +0300)
commitd9b7f22623b5fa9cc189581dcdfb2ac605933bf4
tree6287535fbe9d67a743c2c16551042447a1e7d424
parent0d7614f09c1ebdbaa1599a5aba7593f147bf96ee
slub: use free_page instead of put_page for freeing kmalloc allocation

When freeing objects, the slub allocator will most of the time free
empty pages by calling __free_pages(). But high-order kmalloc will be
diposed by means of put_page() instead. It makes no sense to call
put_page() in kernel pages that are provided by the object allocators,
so we shouldn't be doing this ourselves. Aside from the consistency
change, we don't change the flow too much. put_page()'s would call its
dtor function, which is __free_pages. We also already do all of the
Compound page tests ourselves, and the Mlock test we lose don't really
matter.

Signed-off-by: Glauber Costa <glommer@parallels.com>
Acked-by: Christoph Lameter <cl@linux.com>
CC: David Rientjes <rientjes@google.com>
CC: Pekka Enberg <penberg@kernel.org>
Signed-off-by: Pekka Enberg <penberg@kernel.org>
mm/slub.c