Hi, all
     In the function call chain
kmem_cache_free()->cache_flusharray()->free_block()->slab_put_obj(), there
are codes like the following which I can not understand:
        unsigned int objnr = obj_to_index(cachep, slabp, objp);
        slab_bufctl(slabp)[objnr] = slabp->free;
        slabp->free = objnr;
        slabp->inuse--;

and  slab_bufctl(slabp) is (kmem_bufctl_t *)(slabp + 1).
Since slabp is a pointer to struct slab, then what does slabp + 1 point to?
the next slab? what is the meaning of slab_bufctl(slabp)[objnr] ?
Wish I describe my question clearly!
Thanks!

-- 
National Research Center for Intelligent Computing Systems
Institute of Computing Technology, Chinese Academy of Sciences

Reply via email to