lkml.org 
[lkml]   [2008]   [Jan]   [7]   [last100]   RSS Feed
Views: [more markup]  [less markup]  [headers]  [forward] 
 
Messages in this thread
/
DateMon, 7 Jan 2008 11:38:31 -0800
FromAndrew Morton <>
SubjectRe: Linux 2.6.24-rc7 Build-Failure at __you_cannot_kmalloc_that_much
On Mon, 7 Jan 2008 10:31:53 -0800 (PST)
Christoph Lameter <clameter@sgi.com> wrote:

> 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.

ug.  Silent and nasty.

> We could replace the __you_cannot_kmalloc_that_much() with a BUG() 
> statement so we have the same effect in SLAB?

I think it'd be better to just put suitable workarounds at the offending
callsites.  We've only seen three or four of them in several months.



\
 
 \ /
  Last update: 2008-01-07 20:43    [from the cache]
©2003-2008