mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2026-07-16 13:19:56 -04:00
tools/testing: Add support for prefilled slab sheafs
Add the prefilled sheaf structs to the slab header and the associated functions to the testing/shared/linux.c file. Signed-off-by: Liam R. Howlett <Liam.Howlett@oracle.com> Reviewed-by: Suren Baghdasaryan <surenb@google.com> Signed-off-by: Vlastimil Babka <vbabka@suse.cz>
This commit is contained in:
committed by
Vlastimil Babka
parent
025f93101b
commit
fdbebab19f
@@ -123,6 +123,18 @@ struct kmem_cache_args {
|
||||
void (*ctor)(void *);
|
||||
};
|
||||
|
||||
struct slab_sheaf {
|
||||
union {
|
||||
struct list_head barn_list;
|
||||
/* only used for prefilled sheafs */
|
||||
unsigned int capacity;
|
||||
};
|
||||
struct kmem_cache *cache;
|
||||
unsigned int size;
|
||||
int node; /* only used for rcu_sheaf */
|
||||
void *objects[];
|
||||
};
|
||||
|
||||
static inline void *kzalloc(size_t size, gfp_t gfp)
|
||||
{
|
||||
return kmalloc(size, gfp | __GFP_ZERO);
|
||||
@@ -173,5 +185,21 @@ __kmem_cache_create(const char *name, unsigned int size, unsigned int align,
|
||||
void kmem_cache_free_bulk(struct kmem_cache *cachep, size_t size, void **list);
|
||||
int kmem_cache_alloc_bulk(struct kmem_cache *cachep, gfp_t gfp, size_t size,
|
||||
void **list);
|
||||
struct slab_sheaf *
|
||||
kmem_cache_prefill_sheaf(struct kmem_cache *s, gfp_t gfp, unsigned int size);
|
||||
|
||||
void *
|
||||
kmem_cache_alloc_from_sheaf(struct kmem_cache *s, gfp_t gfp,
|
||||
struct slab_sheaf *sheaf);
|
||||
|
||||
void kmem_cache_return_sheaf(struct kmem_cache *s, gfp_t gfp,
|
||||
struct slab_sheaf *sheaf);
|
||||
int kmem_cache_refill_sheaf(struct kmem_cache *s, gfp_t gfp,
|
||||
struct slab_sheaf **sheafp, unsigned int size);
|
||||
|
||||
static inline unsigned int kmem_cache_sheaf_size(struct slab_sheaf *sheaf)
|
||||
{
|
||||
return sheaf->size;
|
||||
}
|
||||
|
||||
#endif /* _TOOLS_SLAB_H */
|
||||
|
||||
Reference in New Issue
Block a user