Re: [PATCH -tip] x86: uv - prevent NULL dereference inuv_system_init

From: Cyrill Gorcunov
Date: Sun May 03 2009 - 05:38:30 EST


[David Rientjes - Sun, May 03, 2009 at 02:09:50AM -0700]
| On Sun, 3 May 2009, Ingo Molnar wrote:
|
| > Hm, would be nice if we had a __GFP_PANIC variant in kmalloc that
| > would just panic straight in the allocator, when allocation failure
| > is not acceptable. (Andrew Cc:-ed)
| >
| > It does not increase the priority of the allocation nor does it
| > trigger any 'dont fail' logic - it is simply the central expression
| > of 'this should not have failed, panic'.
| >
|
| SLUB stores two new slab allocation orders: the cache's adjustable order
| which is calculated at kmem_cache_create(), and the smallest order that
| can accommodate at least one object allocation. The latter is used as a
| fallback when the former fails in the page allocator.
|
| So for __GFP_PANIC to work in this case, it could not be implemented in
| the page allocator (SLUB also passes __GFP_NORETRY for new slabs) but
| rather above it in allocate_slab(). It would then be a no-op for
| alloc_pages().
|

What if instead of tear thru all these cases we implement
a special wrapper (say kmalloc_panic)? Almost the same
are done for bootmem allocator (__alloc_bootmem_nopanic).

It seems __GFP_PANIC would not be that popular anyway
and what is more important -- we would add additional
check the flag somewhere inside mm code (which will
be not needed most the time).

-- Cyrill
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/