Provided by: linux-doc-2.6.15_2.6.15-23.39_all bug


       kmem_cache_create - Create a cache.


       kmem_cache_t * kmem_cache_create  (const char * name, size_t size,
                                            size_t align, unsigned long flags,
                                            void (*ctor) <funcparams>void*, kmem_cache_t *, unsigned long</funcparams>,
                                            void (*dtor) <funcparams>void*, kmem_cache_t *, unsigned long</funcparams>);


       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.

       dtor   A destructor for the objects.


       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 and the dtor is run before  the  pages
       are handed back.

        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_NO_REAP - Don’t automatically reap this cache  when  we’re  under
       memory pressure.

        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.