[<prev] [next>] [day] [month] [year] [list]
Message-ID: <20160627213454.GA2440@p183.telecom.by>
Date: Tue, 28 Jun 2016 00:34:55 +0300
From: Alexey Dobriyan <adobriyan@...il.com>
To: akpm@...ux-foundation.org
Cc: linux-kernel@...r.kernel.org
Subject: [PATCH] mm: faster kmalloc_array(), kcalloc()
When both arguments to kmalloc_array() or kcalloc() are known at
compile time then their product is known at compile time
but search for kmalloc cache happens at runtime not at compile time.
Signed-off-by: Alexey Dobriyan <adobriyan@...il.com>
---
include/linux/slab.h | 2 ++
1 file changed, 2 insertions(+)
--- a/include/linux/slab.h
+++ b/include/linux/slab.h
@@ -565,6 +565,8 @@ static inline void *kmalloc_array(size_t n, size_t size, gfp_t flags)
{
if (size != 0 && n > SIZE_MAX / size)
return NULL;
+ if (__builtin_constant_p(n) && __builtin_constant_p(size))
+ return kmalloc(n * size, flags);
return __kmalloc(n * size, flags);
}
Powered by blists - more mailing lists