
penberg at kernel
Jun 20, 2012, 12:14 AM
Post #2 of 2
(26 views)
Permalink
|
|
Re: [PATCH 1,2/4 v4] slub: use __cmpxchg_double_slab() at interrupt disabled place
[In reply to]
|
|
On Fri, 18 May 2012, Joonsoo Kim wrote: > get_freelist(), unfreeze_partials() are only called with interrupt disabled, > so __cmpxchg_double_slab() is suitable. > > Acked-by: Christoph Lameter <cl [at] linux> > Signed-off-by: Joonsoo Kim <js1304 [at] gmail> Applied, thanks! > --- > According to comment from Pekka, add some comment. > > diff --git a/mm/slub.c b/mm/slub.c > index 0c3105c..d7f8291 100644 > --- a/mm/slub.c > +++ b/mm/slub.c > @@ -1879,7 +1879,11 @@ redo: > } > } > > -/* Unfreeze all the cpu partial slabs */ > +/* > + * Unfreeze all the cpu partial slabs. > + * > + * This function must be called with interrupt disabled. > + */ > static void unfreeze_partials(struct kmem_cache *s) > { > struct kmem_cache_node *n = NULL; > @@ -1935,7 +1939,7 @@ static void unfreeze_partials(struct kmem_cache *s) > l = m; > } > > - } while (!cmpxchg_double_slab(s, page, > + } while (!__cmpxchg_double_slab(s, page, > old.freelist, old.counters, > new.freelist, new.counters, > "unfreezing slab")); > @@ -2163,6 +2167,8 @@ static inline void *new_slab_objects(struct kmem_cache *s, gfp_t flags, > * The page is still frozen if the return value is not NULL. > * > * If this function returns NULL then the page has been unfrozen. > + * > + * This function must be called with interrupt disabled. > */ > static inline void *get_freelist(struct kmem_cache *s, struct page *page) > { > @@ -2179,7 +2185,7 @@ static inline void *get_freelist(struct kmem_cache *s, struct page *page) > new.inuse = page->objects; > new.frozen = freelist != NULL; > > - } while (!cmpxchg_double_slab(s, page, > + } while (!__cmpxchg_double_slab(s, page, > freelist, counters, > NULL, new.counters, > "get_freelist")); > -- > 1.7.9.5 > > -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo [at] vger More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
|