lkml.org 
[lkml]   [2012]   [Jun]   [10]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: [PATCH 4/4] slub: deactivate freelist of kmem_cache_cpu all at once in deactivate_slab()
    From
    2012/6/9 Christoph Lameter <cl@linux.com>:
    > On Sat, 9 Jun 2012, Joonsoo Kim wrote:
    >
    >> Current implementation of deactivate_slab() which deactivate
    >> freelist of kmem_cache_cpu one by one is inefficient.
    >> This patch changes it to deactivate freelist all at once.
    >> But, there is no overall performance benefit,
    >> because deactivate_slab() is invoked infrequently.
    >
    > Hmm, deactivate freelist can race with slab_free. Need to look at this in
    > detail.

    Implemented logic is nearly same as previous one.
    I just merge first step of previous deactivate_slab() with second one.
    In case of failure of cmpxchg_double_slab(), reloading page->freelist,
    page->counters and recomputing inuse
    ensure that race with slab_free() cannot be possible.
    In case that we need a lock, try to get a lock before invoking
    cmpxchg_double_slab(),
    so race with slab_free cannot be occured too.

    Above is my humble opinion, please give me some comments.


    \
     
     \ /
      Last update: 2012-06-10 13:21    [W:3.458 / U:0.092 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site