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