On Fri, 20 May 2011, James Bottomley wrote: > On Thu, 2011-05-19 at 15:51 -0500, Christoph Lameter wrote: > > On Thu, 19 May 2011, james_p_freyensee@xxxxxxxxxxxxxxx wrote: > > > > > From: J Freyensee <james_p_freyensee@xxxxxxxxxxxxxxx> > > > > > > Currently, kmalloc_index() can return -1, which can be > > > passed right to the kmalloc_caches[] array, cause a > > > > No kmalloc_index() cannot return -1 for the use case that you are > > considering here. The value passed as a size to > > kmalloc_slab is bounded by 2 * PAGE_SIZE and kmalloc_slab will only return > > -1 for sizes > 4M. So we will have to get machines with page sizes > 2M > > before this can be triggered. > > Please don't make x86 centric assumptions like this. I was vaguely > thinking about hugepages in parisc. Like most risc machines, we have > (and have had for over a decade) a vast number of variable size pages > (actually from 4k to 64MB in power of 4 steps) and I think sparc is > similar, so I was wondering what to choose. You'd have been deeply > annoyed if I'd chosen 4MB and had slub fall over (again). > > linux-arch cc'd just so everyone else is aware of these limitations when > they implement hugepages. Well the simple solution would to put a BUG() in kmalloc_slab() instead of returning -1 (whereupon the compiler will complain that we are not returning a value). We tried the BUILD_BUG before but some compilers are not playing ball there. -- To unsubscribe from this list: send the line "unsubscribe linux-arch" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html