Messages in this thread | | | Date | Fri, 11 Mar 2016 11:10:34 -0500 | From | Steven Rostedt <> | Subject | Re: [PATCH v4 5/7] mm, kasan: Stackdepot implementation. Enable stackdepot for SLAB |
| |
On Fri, 11 Mar 2016 14:43:45 +0300 Andrey Ryabinin <ryabinin.a.a@gmail.com> wrote:
> >> This is not about size, this about fragmentation. vmalloc allows to > >> utilize available low-order pages, > >> hence reduce the fragmentation. > > I've attempted to add __vmalloc(STACK_ALLOC_SIZE, alloc_flags, > > PAGE_KERNEL) (also tried vmalloc(STACK_ALLOC_SIZE)) instead of > > page_alloc() and am now getting a crash in > > kmem_cache_alloc_node_trace() in mm/slab.c, because it doesn't allow > > the kmem_cache pointer to be NULL (it's dereferenced when calling > > trace_kmalloc_node()). > > > > Steven, do you know if this because of my code violating some contract > > (e.g. I'm calling vmalloc() too early, when kmalloc_caches[] haven't > > been initialized), > > Probably. kmem_cache_init() goes before vmalloc_init().
Agreed, that function can not be called with cachep NULL, nor can it be called before kmem_cache is set up to point to kmem_cache_boot.
-- Steve
| |