Re: [rfc ] slub: unfreeze full page if it's in node partial

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

 



Forget to point, It also base on per cpu partial patches. 

On Wed, 2011-09-07 at 10:56 +0800, Alex,Shi wrote:
> In the per cpu partial slub, we may add a full page into node partial
> list. like the following scenario:
> 
>         cpu1                                    cpu2 
>     in unfreeze_partials                   in __slab_alloc
>         ...
>    add_partial(n, page, 1);
>                                         alloced from cpu partial, and 
>                                         set frozen = 1.
>    second cmpxchg_double_slab()
>    set frozen = 0
> 
> 
> At that time, maybe we'd better to unfreeze it in acquire_slab(). That
> let it in 'full list' mode, frozen=0 and freelist = NULL, same as we did
> in __slab_alloc()
> 
> 
> Signed-off-by: Alex Shi <alex.shi@xxxxxxxxx>
> ---
>  mm/slub.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/mm/slub.c b/mm/slub.c
> index 6fca71c..7846951 100644
> --- a/mm/slub.c
> +++ b/mm/slub.c
> @@ -1579,7 +1579,7 @@ static inline void *acquire_slab(struct kmem_cache *s,
>  			new.inuse = page->objects;
>  
>  		VM_BUG_ON(new.frozen);
> -		new.frozen = 1;
> +		new.frozen = freelist != NULL;
>  
>  	} while (!__cmpxchg_double_slab(s, page,
>  			freelist, counters,


--
To unsubscribe, send a message with 'unsubscribe linux-mm' in
the body to majordomo@xxxxxxxxx.  For more info on Linux MM,
see: http://www.linux-mm.org/ .
Fight unfair telecom internet charges in Canada: sign http://stopthemeter.ca/
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]