lkml.org 
[lkml]   [2007]   [Apr]   [30]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH] [25/34] x86_64: skip cache_free_alien() on non NUMA
    Date

    From: "Siddha, Suresh B" <suresh.b.siddha@intel.com>

    Set use_alien_caches to 0 on non NUMA platforms. And avoid calling the
    cache_free_alien() when use_alien_caches is not set. This will avoid the
    cache miss that happens while dereferencing slabp to get nodeid.

    Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
    Signed-off-by: Andi Kleen <ak@suse.de>
    Cc: Andi Kleen <andi@firstfloor.org>
    Cc: Eric Dumazet <dada1@cosmosbay.com>
    Cc: David Rientjes <rientjes@google.com>
    Cc: Christoph Lameter <clameter@engr.sgi.com>
    Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
    ---
    mm/slab.c | 7 +++++--
    1 file changed, 5 insertions(+), 2 deletions(-)
    Index: linux/mm/slab.c
    ===================================================================
    --- linux.orig/mm/slab.c
    +++ linux/mm/slab.c
    @@ -1146,7 +1146,7 @@ static inline int cache_free_alien(struc
    * Make sure we are not freeing a object from another node to the array
    * cache on this cpu.
    */
    - if (likely(slabp->nodeid == node) || unlikely(!use_alien_caches))
    + if (likely(slabp->nodeid == node))
    return 0;

    l3 = cachep->nodelists[node];
    @@ -1394,6 +1394,9 @@ void __init kmem_cache_init(void)
    int order;
    int node;

    + if (num_possible_nodes() == 1)
    + use_alien_caches = 0;
    +
    for (i = 0; i < NUM_INIT_LISTS; i++) {
    kmem_list3_init(&initkmem_list3[i]);
    if (i < MAX_NUMNODES)
    @@ -3563,7 +3566,7 @@ static inline void __cache_free(struct k
    check_irq_off();
    objp = cache_free_debugcheck(cachep, objp, __builtin_return_address(0));

    - if (cache_free_alien(cachep, objp))
    + if (use_alien_caches && cache_free_alien(cachep, objp))
    return;

    if (likely(ac->avail < ac->limit)) {
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2007-04-30 17:53    [W:0.206 / U:0.464 seconds]
    ©2003-2014 Jasper Spaans. Advertise on this site