On Tue, Aug 07, 2007 at 05:13:52PM -0700, Christoph Lameter wrote: > On Mon, 6 Aug 2007, Peter Zijlstra wrote: > > > Restrict objects from reserve slabs (ALLOC_NO_WATERMARKS) to allocation > > contexts that are entitled to it. > > Is this patch actually necessary? > > If you are in an atomic context and bound to a cpu then a per cpu slab is > assigned to you and no one else can take object aways from that process > since nothing else can run on the cpu.
Servicing I/O over the network requires an allocation to send a buffer and an allocation to later receive the acknowledgement. We can't free our send buffer (or the memory it's supposed to clean) until the relevant ack is received. We have to hold our reserves privately throughout, even if an interrupt that wants to do GFP_ATOMIC allocation shows up in-between. > If you are not in an atomic context and are preemptable or can switch > allocation context then you can create another context in which reclaim > could be run to remove some clean pages and get you more memory. Again no > need for the patch. By the point that this patch is relevant, there are already no clean pages. The only way to free up more memory is via I/O. -- Mathematics is the supreme nostalgia of our time. - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/