Commit 4f52ce20 authored by Liam R. Howlett's avatar Liam R. Howlett Committed by Peng Zhang
Browse files

radix tree test suite: fix allocation calculation in kmem_cache_alloc_bulk()

mainline inclusion
from mainline-v6.7-rc1
commit 7771dcf019dde5998380c40deec0b42f5df9d9a3
category: performance
bugzilla: https://gitee.com/openeuler/kernel/issues/I9AYM3
CVE: NA

Reference: https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/commit/?id=7771dcf019dde5998380c40deec0b42f5df9d9a3

--------------------------------

The bulk allocation is iterating through an array and storing enough
memory for the entire bulk allocation instead of a single array entry.
Only allocate an array element of the size set in the kmem_cache.

Link: https://lkml.kernel.org/r/20230929201359.2857583-1-Liam.Howlett@oracle.com


Fixes: cc86e0c2 ("radix tree test suite: add support for slab bulk APIs")
Signed-off-by: default avatarLiam R. Howlett <Liam.Howlett@oracle.com>
Reported-by: default avatarChristophe JAILLET <christophe.jaillet@wanadoo.fr>
Cc: Matthew Wilcox (Oracle) <willy@infradead.org>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarZhangPeng <zhangpeng362@huawei.com>
parent 1b4212c6
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -165,9 +165,9 @@ int kmem_cache_alloc_bulk(struct kmem_cache *cachep, gfp_t gfp, size_t size,
		for (i = 0; i < size; i++) {
			if (cachep->align) {
				posix_memalign(&p[i], cachep->align,
					       cachep->size * size);
					       cachep->size);
			} else {
				p[i] = malloc(cachep->size * size);
				p[i] = malloc(cachep->size);
			}
			if (cachep->ctor)
				cachep->ctor(p[i]);