Loading mm/slub.c +9 −7 Original line number Diff line number Diff line Loading @@ -2130,9 +2130,15 @@ static inline void *new_slab_objects(struct kmem_cache *s, gfp_t flags, int node, struct kmem_cache_cpu **pc) { void *freelist; struct kmem_cache_cpu *c; struct page *page = new_slab(s, flags, node); struct kmem_cache_cpu *c = *pc; struct page *page; freelist = get_partial(s, flags, node, c); if (freelist) return freelist; page = new_slab(s, flags, node); if (page) { c = __this_cpu_ptr(s->cpu_slab); if (c->page) Loading Loading @@ -2269,10 +2275,6 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, goto redo; } /* Then do expensive stuff like retrieving pages from the partial lists */ freelist = get_partial(s, gfpflags, node, c); if (!freelist) freelist = new_slab_objects(s, gfpflags, node, &c); if (unlikely(!freelist)) { Loading Loading
mm/slub.c +9 −7 Original line number Diff line number Diff line Loading @@ -2130,9 +2130,15 @@ static inline void *new_slab_objects(struct kmem_cache *s, gfp_t flags, int node, struct kmem_cache_cpu **pc) { void *freelist; struct kmem_cache_cpu *c; struct page *page = new_slab(s, flags, node); struct kmem_cache_cpu *c = *pc; struct page *page; freelist = get_partial(s, flags, node, c); if (freelist) return freelist; page = new_slab(s, flags, node); if (page) { c = __this_cpu_ptr(s->cpu_slab); if (c->page) Loading Loading @@ -2269,10 +2275,6 @@ static void *__slab_alloc(struct kmem_cache *s, gfp_t gfpflags, int node, goto redo; } /* Then do expensive stuff like retrieving pages from the partial lists */ freelist = get_partial(s, gfpflags, node, c); if (!freelist) freelist = new_slab_objects(s, gfpflags, node, &c); if (unlikely(!freelist)) { Loading