Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-12 Thread Christoph Lameter
On Tue, 12 Dec 2006, Paul Jackson wrote: > Christoph wrote: > > + if (local_flags & __GFP_WAIT) > > + local_irq_enable(); > > + kmem_flagcheck(cache, flags); > > obj = kmem_getpages(cache, flags, -1); > > + if (local_flags & __GFP_WAIT)

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-12 Thread Paul Jackson
Christoph wrote: > + if (local_flags & __GFP_WAIT) > + local_irq_enable(); > + kmem_flagcheck(cache, flags); > obj = kmem_getpages(cache, flags, -1); > + if (local_flags & __GFP_WAIT) > + local_irq_disable();

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-12 Thread Paul Jackson
Christoph wrote: + if (local_flags __GFP_WAIT) + local_irq_enable(); + kmem_flagcheck(cache, flags); obj = kmem_getpages(cache, flags, -1); + if (local_flags __GFP_WAIT) + local_irq_disable(); This

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-12 Thread Christoph Lameter
On Tue, 12 Dec 2006, Paul Jackson wrote: Christoph wrote: + if (local_flags __GFP_WAIT) + local_irq_enable(); + kmem_flagcheck(cache, flags); obj = kmem_getpages(cache, flags, -1); + if (local_flags __GFP_WAIT) +

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-11 Thread Jay Cliburn
Christoph Lameter wrote: Ahh. Fallback_alloc() does not do the check for GFP_WAIT as done in cache_grow(). Thus interrupts are disabled when we call kmem_getpages() which results in the failure. Duplicate the handling of GFP_WAIT in cache_grow(). Jay could you try this patch? The patch

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-11 Thread Christoph Lameter
Ahh. Fallback_alloc() does not do the check for GFP_WAIT as done in cache_grow(). Thus interrupts are disabled when we call kmem_getpages() which results in the failure. Duplicate the handling of GFP_WAIT in cache_grow(). Jay could you try this patch? Signed-off-by: Christoph Lameter <[EMAIL

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-11 Thread Christoph Lameter
On Sun, 10 Dec 2006, Andrew Morton wrote: > > I fixed the cpuset_zone_allowed() call from fallback_alloc() to avoid > > sleeping. Notice the __GFP_HARDWALL added in Linus's version, or the > > new function cpuset_zone_allowed_hardwall() in Andrew's version, all > > done in the last week. > > >

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-11 Thread Christoph Lameter
On Sun, 10 Dec 2006, Andrew Morton wrote: I fixed the cpuset_zone_allowed() call from fallback_alloc() to avoid sleeping. Notice the __GFP_HARDWALL added in Linus's version, or the new function cpuset_zone_allowed_hardwall() in Andrew's version, all done in the last week. But

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-11 Thread Christoph Lameter
Ahh. Fallback_alloc() does not do the check for GFP_WAIT as done in cache_grow(). Thus interrupts are disabled when we call kmem_getpages() which results in the failure. Duplicate the handling of GFP_WAIT in cache_grow(). Jay could you try this patch? Signed-off-by: Christoph Lameter [EMAIL

Re: [BUG] commit 3c517a61, slab: better fallback allocation behavior

2006-12-11 Thread Jay Cliburn
Christoph Lameter wrote: Ahh. Fallback_alloc() does not do the check for GFP_WAIT as done in cache_grow(). Thus interrupts are disabled when we call kmem_getpages() which results in the failure. Duplicate the handling of GFP_WAIT in cache_grow(). Jay could you try this patch? The patch