Re: NUMA aware slab allocator V3

Matthew Dobson
2005-05-20T20:20:41Z

Christoph Lameter wrote:
> On Fri, 20 May 2005, Matthew Dobson wrote:
>
>
>>Christoph, I'm getting the following errors building rc4-mm2 w/ GCC 2.95.4:
>
>
> Works fine here with gcc 2.95.4.ds15-22 but that is a debian gcc
> 2.95.4 patched up to work correctly. If you need to address the pathology in pristine
> gcc 2.95.4 by changing the source then declare the entry field with 0
> members.
>
> Index: linux-2.6.12-rc4/mm/slab.c
> ===================================================================
> --- linux-2.6.12-rc4.orig/mm/slab.c 2005-05-19 21:29:45.000000000 +0000
> +++ linux-2.6.12-rc4/mm/slab.c 2005-05-20 19:18:22.000000000 +0000
> @@ -267,7 +267,7 @@
> #ifdef CONFIG_NUMA
> spinlock_t lock;
> #endif
> - void *entry[];
> + void *entry[0];
> };
>
> /* bootstrap: The caches do not work without cpuarrays anymore,
>
>
>
> gcc 2.95 can produce proper code for ppc64?

Apparently...?

>>mm/slab.c:281: field `entry' has incomplete typemm/slab.c: In function
>>'cache_alloc_refill':
>
>
> See patch above?

Will do.

>>mm/slab.c:2497: warning: control reaches end of non-void function
>
>
> That is the end of cache_alloc_debug_check right? This is a void
> function in my source.

Nope. It's the end of this function:
static void *cache_alloc_refill(kmem_cache_t *cachep, unsigned int __nocast
flags)

Though I'm not sure why I'm getting this warning, since the function ends
like this:
ac->touched = 1;
return ac->entry[--ac->avail];
} <<-- Line 2497

>>mm/slab.c: In function `kmem_cache_alloc':
>>mm/slab.c:2567: warning: `objp' might be used uninitialized in this function
>>mm/slab.c: In function `kmem_cache_alloc_node':
>>mm/slab.c:2567: warning: `objp' might be used uninitialized in this function
>>mm/slab.c: In function `__kmalloc':
>>mm/slab.c:2567: warning: `objp' might be used uninitialized in this function
>
>
> There is a branch there and the object is initialized in either branch.

I agree. Not sure why this warning is occurring, either.

I tried to build this twice on this particular box, to no avail. 3x == charm?

-Matt