> On Mon, 7 Jan 2008, Andrew Morton wrote:
>
> > > : undefined reference to `__you_cannot_kmalloc_that_much'
>
> There is also a kernel.org bugzilla for this at
>
>
http://bugzilla.kernel.org/show_bug.cgi?id=9669
> For some reason my adds to this do not show up.
>
> In both cases we have a
>
> k(z/m)alloc(sizeof(*pointer), ...)
>
> that is for some reason failing. I guess what happens is that the function
> in which this occurs is too complex for gcc 3.2. Thus it stops constant
> folding the sizeof(*pointer) in the complex inline-if-cascade that SLAB
> needs to determine the cache and does not eliminate the
> __you_cannot_kmalloc_that_much branch().
>
> SLUB in that case just puts a series of if comparisions in the code. This
> means compilation does not fail but a large amount of code is generated.