 .  . 11.1     ,
  .



. 11.1.   ,   

    kmem_cache_s.   
  slab_full, slab_partial  slab_empty,    
kmem_list3.     ,    . 
    struct slab,   -
 .

struct slab {

struct list head list; /*  ,  

   */
unsigned long colouroff; /*     */
void *s_mem;            /*    */
unsigned int inuse;     /*    */
kmem bufcti t free;     /*   ,  */

      ,    -
,     .    ,   -
    ,       -
 ,   ,

    ,    -
     _get__free_pages ()  .

static void *kmem_getpages(kmem_cache_t *cachep, int flags, int nodeid)
{

struct page *page;

void *addr;

int i;

250  11