Messages in this thread | | | Date | Mon, 7 Jan 2008 10:31:53 -0800 (PST) | From | Christoph Lameter <> | Subject | Re: Linux 2.6.24-rc7 Build-Failure at __you_cannot_kmalloc_that_much |
| |
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.
We could replace the __you_cannot_kmalloc_that_much() with a BUG() statement so we have the same effect in SLAB?
| |