[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20090503093814.GB4615@lenovo>
Date: Sun, 3 May 2009 13:38:14 +0400
From: Cyrill Gorcunov <gorcunov@...il.com>
To: David Rientjes <rientjes@...gle.com>
Cc: Ingo Molnar <mingo@...e.hu>, Jack Steiner <steiner@....com>,
Andrew Morton <akpm@...ux-foundation.org>,
"H. Peter Anvin" <hpa@...or.com>,
Thomas Gleixner <tglx@...utronix.de>,
LKML <linux-kernel@...r.kernel.org>
Subject: Re: [PATCH -tip] x86: uv - prevent NULL dereference in
uv_system_init
[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@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists