On Wed, Jul 06 2005, Christoph Lameter wrote:
> This patch used to be in Andrew's tree before the NUMA slab allocator went 
> in. Either this patch or the NUMA slab allocator is needed in order for
> kmalloc_node to work correctly.
> 
> pcibus_to_node may be used to generate the node information passed to 
> kmalloc_node. pcibus_to_node returns -1 if it was not able to determine
> on which node a pcibus is located. For that case kmalloc_node must
> work like kmalloc.
> 
> Signed-off-by: Christoph Lameter <[EMAIL PROTECTED]>
> 
> Index: linux-2.6.13-rc2/mm/slab.c
> ===================================================================
> --- linux-2.6.13-rc2.orig/mm/slab.c   2005-07-06 03:46:33.000000000 +0000
> +++ linux-2.6.13-rc2/mm/slab.c        2005-07-06 17:34:19.000000000 +0000
> @@ -2372,6 +2372,9 @@ void *kmem_cache_alloc_node(kmem_cache_t
>       struct slab *slabp;
>       kmem_bufctl_t next;
>  
> +     if (nodeid == -1)
> +             return kmem_cache_alloc(cachep, flags);
> +
>       for (loop = 0;;loop++) {
>               struct list_head *q;

imho, things like this are much cleaner coded as:

void *kmem_cache_alloc_node(cachep, flags, node)
{
        if (node != -1)
                return __kmem_cache_alloc_node(cachep, flags, node);

        /* no valid node, fall back to regular slab alloc */
        return kmem_cache_alloc(cachep, flags);

}

-- 
Jens Axboe

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
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