kmem_cache_create
Prev | The Slab Cache | Next

## Name

kmem_cache_create — Create a cache.

## Synopsis

`struct kmem_cache * kmem_cache_create (` | const char * | name,
| size_t | size,
| size_t | align,
| unsigned long | flags,
| void (* | ctor`(`void*, struct kmem_cache *, unsigned long`)``)`;

## Arguments

`name`

  A string which is used in /proc/slabinfo to identify this cache.

`size`

  The size of objects to be created in this cache.

`align`

  The required alignment for the objects.

`flags`

  SLAB flags

`ctor`

  A constructor for the objects.

## Description

Returns a ptr to the cache on success, NULL on failure. Cannot be called within a int, but can be interrupted. The `ctor` is run when new pages are allocated by the cache.

`name` must be valid until the cache is destroyed. This implies that the module calling this has to destroy the cache before getting unloaded.

The flags are

`SLAB_POISON` - Poison the slab with a known test pattern (a5a5a5a5) to catch references to uninitialised memory.

`SLAB_RED_ZONE` - Insert `Red' zones around the allocated memory to check for buffer overruns.

`SLAB_HWCACHE_ALIGN` - Align the objects in this cache to a hardware cacheline. This can be beneficial if you're counting cycles as closely as davem.

Prev | Up | Next
kzalloc | Home | kmem_cache_shrink