slub: Force no inlining of debug functions
Compiler folds the debgging functions into the critical paths. Avoid that by adding noinline to the functions that check for problems. Acked-by: David Rientjes <rientjes@google.com> Signed-off-by: Christoph Lameter <cl@linux.com> Signed-off-by: Pekka Enberg <penberg@kernel.org>
This commit is contained in:
parent
899611ee7d
commit
1537066c69
|
@ -862,7 +862,7 @@ static void setup_object_debug(struct kmem_cache *s, struct page *page,
|
||||||
init_tracking(s, object);
|
init_tracking(s, object);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int alloc_debug_processing(struct kmem_cache *s, struct page *page,
|
static noinline int alloc_debug_processing(struct kmem_cache *s, struct page *page,
|
||||||
void *object, unsigned long addr)
|
void *object, unsigned long addr)
|
||||||
{
|
{
|
||||||
if (!check_slab(s, page))
|
if (!check_slab(s, page))
|
||||||
|
@ -902,8 +902,8 @@ bad:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int free_debug_processing(struct kmem_cache *s, struct page *page,
|
static noinline int free_debug_processing(struct kmem_cache *s,
|
||||||
void *object, unsigned long addr)
|
struct page *page, void *object, unsigned long addr)
|
||||||
{
|
{
|
||||||
if (!check_slab(s, page))
|
if (!check_slab(s, page))
|
||||||
goto fail;
|
goto fail;
|
||||||
|
|
Loading…
Reference in a new issue