Re: [S+Q Cleanup 6/6] slub: Move gfpflag masking out of the hotpath

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Tue, 17 Aug 2010, Christoph Lameter wrote:

> Index: linux-2.6/mm/slub.c
> ===================================================================
> --- linux-2.6.orig/mm/slub.c	2010-08-13 10:33:09.000000000 -0500
> +++ linux-2.6/mm/slub.c	2010-08-13 10:33:13.000000000 -0500
> @@ -797,6 +797,7 @@ static void trace(struct kmem_cache *s, 
>   */
>  static inline int slab_pre_alloc_hook(struct kmem_cache *s, gfp_t flags)
>  {
> +	flags &= gfp_allowed_mask;
>  	lockdep_trace_alloc(flags);
>  	might_sleep_if(flags & __GFP_WAIT);
>  
> @@ -805,6 +806,7 @@ static inline int slab_pre_alloc_hook(st
>  
>  static inline void slab_post_alloc_hook(struct kmem_cache *s, gfp_t flags, void *object)
>  {
> +	flags &= gfp_allowed_mask;
>  	kmemcheck_slab_alloc(s, flags, object, s->objsize);
>  	kmemleak_alloc_recursive(object, s->objsize, 1, s->flags, flags);
>  }
> @@ -1678,6 +1680,7 @@ new_slab:
>  		goto load_freelist;
>  	}
>  
> +	gfpflags &= gfp_allowed_mask;
>  	if (gfpflags & __GFP_WAIT)
>  		local_irq_enable();
>  

Couldn't this include the masking of __GFP_ZERO at the beginning of 
__slab_alloc()?

> @@ -1726,8 +1729,6 @@ static __always_inline void *slab_alloc(
>  	struct kmem_cache_cpu *c;
>  	unsigned long flags;
>  
> -	gfpflags &= gfp_allowed_mask;
> -
>  	if (!slab_pre_alloc_hook(s, gfpflags))
>  		return NULL;
>  
> 
> 

--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxxx  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Don't email: <a href=mailto:"dont@xxxxxxxxx";> email@xxxxxxxxx </a>


[Index of Archives]     [Linux ARM Kernel]     [Linux ARM]     [Linux Omap]     [Fedora ARM]     [IETF Annouce]     [Bugtraq]     [Linux]     [Linux OMAP]     [Linux MIPS]     [ECOS]     [Asterisk Internet PBX]     [Linux API]