lkml.org 
[lkml]   [2016]   [Nov]   [16]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 27/29] radix tree test suite: Add some more functionality
    Date
    From: Matthew Wilcox <willy@linux.intel.com>

    IDR needs more functionality from the kernel: kmalloc()/kfree(), and xchg().

    Signed-off-by: Matthew Wilcox <willy@linux.intel.com>
    ---
    tools/testing/radix-tree/linux.c | 15 +++++++++++++++
    tools/testing/radix-tree/linux/kernel.h | 3 +++
    tools/testing/radix-tree/linux/slab.h | 3 +++
    3 files changed, 21 insertions(+)

    diff --git a/tools/testing/radix-tree/linux.c b/tools/testing/radix-tree/linux.c
    index 1f32a16..ff0452e 100644
    --- a/tools/testing/radix-tree/linux.c
    +++ b/tools/testing/radix-tree/linux.c
    @@ -54,6 +54,21 @@ void kmem_cache_free(struct kmem_cache *cachep, void *objp)
    free(objp);
    }

    +void *kmalloc(size_t size, gfp_t gfp)
    +{
    + void *ret = malloc(size);
    + uatomic_inc(&nr_allocated);
    + return ret;
    +}
    +
    +void kfree(void *p)
    +{
    + if (!p)
    + return;
    + uatomic_dec(&nr_allocated);
    + free(p);
    +}
    +
    struct kmem_cache *
    kmem_cache_create(const char *name, size_t size, size_t offset,
    unsigned long flags, void (*ctor)(void *))
    diff --git a/tools/testing/radix-tree/linux/kernel.h b/tools/testing/radix-tree/linux/kernel.h
    index 23e77f5..9b43b49 100644
    --- a/tools/testing/radix-tree/linux/kernel.h
    +++ b/tools/testing/radix-tree/linux/kernel.h
    @@ -8,6 +8,7 @@
    #include <limits.h>

    #include "../../include/linux/compiler.h"
    +#include "../../include/linux/err.h"
    #include "../../../include/linux/kconfig.h"

    #ifdef BENCHMARK
    @@ -58,4 +59,6 @@ static inline int in_interrupt(void)
    #define round_up(x, y) ((((x)-1) | __round_mask(x, y))+1)
    #define round_down(x, y) ((x) & ~__round_mask(x, y))

    +#define xchg(ptr, x) uatomic_xchg(ptr, x)
    +
    #endif /* _KERNEL_H */
    diff --git a/tools/testing/radix-tree/linux/slab.h b/tools/testing/radix-tree/linux/slab.h
    index 452e2bf..446639f 100644
    --- a/tools/testing/radix-tree/linux/slab.h
    +++ b/tools/testing/radix-tree/linux/slab.h
    @@ -7,6 +7,9 @@
    #define SLAB_PANIC 2
    #define SLAB_RECLAIM_ACCOUNT 0x00020000UL /* Objects are reclaimable */

    +void *kmalloc(size_t size, gfp_t);
    +void kfree(void *);
    +
    struct kmem_cache {
    int size;
    void (*ctor)(void *);
    --
    2.10.2
    \
     
     \ /
      Last update: 2016-11-16 23:26    [W:4.289 / U:0.512 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site