On Wed, Sep 04, 2013 at 10:17:46AM +0800, Wanpeng Li wrote:
> Hi Joonsoo,
> On Mon, Sep 02, 2013 at 05:38:54PM +0900, Joonsoo Kim wrote:
> >This patchset implements byte sized indexes for the freelist of a slab.
> >
> >Currently, the freelist of a slab consist of unsigned int sized indexes.
> >Most of slabs have less number of objects than 256, so much space is wasted.
> >To reduce this overhead, this patchset implements byte sized indexes for
> >the freelist of a slab. With it, we can save 3 bytes for each objects.
> >
> >This introduce one likely branch to functions used for setting/getting
> >objects to/from the freelist, but we may get more benefits from
> >this change.
> >
> >Below is some numbers of 'cat /proc/slabinfo' related to my previous posting
> >and this patchset.
> >
> >
> >* Before *
> ># name            <active_objs> <num_objs> <objsize> <objperslab> 
> ><pagesperslab> : tunables [snip...]
> >kmalloc-512          525    640    512    8    1 : tunables   54   27    0 : 
> >slabdata     80     80      0   
> >kmalloc-256          210    210    256   15    1 : tunables  120   60    0 : 
> >slabdata     14     14      0   
> >kmalloc-192         1016   1040    192   20    1 : tunables  120   60    0 : 
> >slabdata     52     52      0   
> >kmalloc-96           560    620    128   31    1 : tunables  120   60    0 : 
> >slabdata     20     20      0   
> >kmalloc-64          2148   2280     64   60    1 : tunables  120   60    0 : 
> >slabdata     38     38      0   
> >kmalloc-128          647    682    128   31    1 : tunables  120   60    0 : 
> >slabdata     22     22      0   
> >kmalloc-32         11360  11413     32  113    1 : tunables  120   60    0 : 
> >slabdata    101    101      0   
> >kmem_cache           197    200    192   20    1 : tunables  120   60    0 : 
> >slabdata     10     10      0   
> >
> >* After my previous posting(overload struct slab over struct page) *
> ># name            <active_objs> <num_objs> <objsize> <objperslab> 
> ><pagesperslab> : tunables [snip...]
> >kmalloc-512          527    600    512    8    1 : tunables   54   27    0 : 
> >slabdata     75     75      0   
> >kmalloc-256          210    210    256   15    1 : tunables  120   60    0 : 
> >slabdata     14     14      0   
> >kmalloc-192         1040   1040    192   20    1 : tunables  120   60    0 : 
> >slabdata     52     52      0   
> >kmalloc-96           750    750    128   30    1 : tunables  120   60    0 : 
> >slabdata     25     25      0   
> >kmalloc-64          2773   2773     64   59    1 : tunables  120   60    0 : 
> >slabdata     47     47      0   
> >kmalloc-128          660    690    128   30    1 : tunables  120   60    0 : 
> >slabdata     23     23      0   
> >kmalloc-32         11200  11200     32  112    1 : tunables  120   60    0 : 
> >slabdata    100    100      0   
> >kmem_cache           197    200    192   20    1 : tunables  120   60    0 : 
> >slabdata     10     10      0   
> >
> >kmem_caches consisting of objects less than or equal to 128 byte have one 
> >more
> >objects in a slab. You can see it at objperslab.
> 
> I think there is one less objects in a slab after observing objperslab.

Yes :)
I did a mistake when I attached the data about this patchset.
The results of *Before* and *After* should be exchanged.
Thanks for pointing out that.

Thanks.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Please read the FAQ at  http://www.tux.org/lkml/

Reply via email to