• Glauber Costa's avatar
    slub: use free_page instead of put_page for freeing kmalloc allocation · d9b7f226
    Glauber Costa authored
    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: default avatarGlauber Costa <glommer@parallels.com>
    Acked-by: default avatarChristoph Lameter <cl@linux.com>
    CC: David Rientjes <rientjes@google.com>
    CC: Pekka Enberg <penberg@kernel.org>
    Signed-off-by: default avatarPekka Enberg <penberg@kernel.org>
    d9b7f226
slub.c 130 KB