Messages in this thread | | | Date | Fri, 12 Jun 2009 13:30:33 -0400 (EDT) | From | Christoph Lameter <> | Subject | Re: [GIT PULL v2] Early SLAB fixes for 2.6.31 |
| |
On Fri, 12 Jun 2009, Pekka J Enberg wrote:
> @@ -3434,6 +3451,8 @@ __cache_alloc(struct kmem_cache *cachep, gfp_t flags, void *caller) > unsigned long save_flags; > void *objp; > > + flags &= slab_gfp_mask; > + > lockdep_trace_alloc(flags); > > if (slab_should_failslab(cachep, flags))
Adds code to hot code path.
> @@ -1595,6 +1601,8 @@ static __always_inline void *slab_alloc(struct kmem_cache *s, > unsigned long flags; > unsigned int objsize; > > + gfpflags &= slab_gfp_mask; > + > lockdep_trace_alloc(gfpflags); > might_sleep_if(gfpflags & __GFP_WAIT); >
Adds code to hot code path.
The allocators mask flags passed to the page allocator through GFP_RECLAIM_MASK|GFP_CONSTRAINT_MASK. This is done outside of the critical code paths.
The might_sleep issues may be fixed by adding another check to __might_sleep().
| |