> > IMO, I thought we can fix this by following. > It doesn't initialize unused variables and utilize the percpu xarray. If I said > anything wrong, please do let me know. I can learn a lot from you all :). > > > diff --git a/mm/vmalloc.c b/mm/vmalloc.c > index 11fe5ea208aa..f9f981674b2d 100644 > --- a/mm/vmalloc.c > +++ b/mm/vmalloc.c > @@ -4480,17 +4480,21 @@ void __init vmalloc_init(void) > */ > vmap_area_cachep = KMEM_CACHE(vmap_area, SLAB_PANIC); > > - for_each_possible_cpu(i) { > + for (i = 0; i < nr_cpu_ids; i++) { > struct vmap_block_queue *vbq; > struct vfree_deferred *p; > > vbq = &per_cpu(vmap_block_queue, i); > + xa_init(&vbq->vmap_blocks); > + > + if (!cpu_possible(i)) Why do you need such check? Thanks! -- Uladzislau Rezki