lkml.org 
[lkml]   [2008]   [Mar]   [3]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[rfc][patch 1/3] slub: fix small HWCACHE_ALIGN alignment

    SLUB should pack even small objects nicely into cachelines if that is what
    has been asked for. Use the same algorithm as SLAB for this.

    Signed-off-by: Nick Piggin <npiggin@suse.de>
    ---
    Index: linux-2.6/mm/slub.c
    ===================================================================
    --- linux-2.6.orig/mm/slub.c
    +++ linux-2.6/mm/slub.c
    @@ -1896,12 +1896,15 @@ static unsigned long calculate_alignment
    * specified alignment though. If that is greater
    * then use it.
    */
    - if ((flags & SLAB_HWCACHE_ALIGN) &&
    - size > cache_line_size() / 2)
    - return max_t(unsigned long, align, cache_line_size());
    + if (flags & SLAB_HWCACHE_ALIGN) {
    + unsigned long ralign = cache_line_size();
    + while (size <= ralign / 2)
    + ralign /= 2;
    + align = max(align, ralign);
    + }

    if (align < ARCH_SLAB_MINALIGN)
    - return ARCH_SLAB_MINALIGN;
    + align = ARCH_SLAB_MINALIGN;

    return ALIGN(align, sizeof(void *));
    }

    \
     
     \ /
      Last update: 2008-03-03 10:37    [W:0.023 / U:0.060 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site