Re: [PATCH 01/16] tools: Move gfp.h and slab.h from radix-tree to lib

From: Matthew Wilcox
Date: Thu Jan 27 2022 - 08:39:13 EST


On Thu, Jan 27, 2022 at 02:21:19PM +0100, Karolina Drobnik wrote:
> diff --git a/tools/testing/radix-tree/linux.c b/tools/testing/radix-tree/linux.c
> index 2d9c59df60de..81539f543954 100644
> --- a/tools/testing/radix-tree/linux.c
> +++ b/tools/testing/radix-tree/linux.c
> @@ -14,7 +14,6 @@
>
> int nr_allocated;
> int preempt_count;
> -int kmalloc_verbose;
> int test_verbose;
>
> struct kmem_cache {
> @@ -78,32 +77,6 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
> pthread_mutex_unlock(&cachep->lock);
> }
>
> -void *kmalloc(size_t size, gfp_t gfp)
> -{
> - void *ret;
> -
> - if (!(gfp & __GFP_DIRECT_RECLAIM))
> - return NULL;
> -
> - ret = malloc(size);
> - uatomic_inc(&nr_allocated);
> - if (kmalloc_verbose)
> - printf("Allocating %p from malloc\n", ret);
> - if (gfp & __GFP_ZERO)
> - memset(ret, 0, size);
> - return ret;
> -}
> -
> -void kfree(void *p)
> -{
> - if (!p)
> - return;
> - uatomic_dec(&nr_allocated);
> - if (kmalloc_verbose)
> - printf("Freeing %p to malloc\n", p);
> - free(p);
> -}
> -
> struct kmem_cache *
> kmem_cache_create(const char *name, unsigned int size, unsigned int align,
> unsigned int flags, void (*ctor)(void *))

I don't think it makes much sense to move kmalloc() and not to move
the kmem_cache* functions. They're all provided by slab in the kernel
proper, so while you don't use them, I think keeping all the memory
allocation functions together is preferable.