Messages in this thread | | | Date | Fri, 9 May 2008 13:34:34 +0200 | From | Heiko Carstens <> | Subject | Re: [PATCH] sparsemem vmemmap: initialize memmap. |
| |
> > Index: linux-2.6/mm/sparse-vmemmap.c > > =================================================================== > > --- linux-2.6.orig/mm/sparse-vmemmap.c > > +++ linux-2.6/mm/sparse-vmemmap.c > > @@ -154,6 +154,6 @@ struct page * __meminit sparse_mem_map_p > > int error = vmemmap_populate(map, PAGES_PER_SECTION, nid); > > if (error) > > return NULL; > > - > > + memset(map, 0, PAGES_PER_SECTION * sizeof(struct page)); > > return map; > > } > > The normal expectation is that all allocations are made using > vmemmap_alloc_block() which allocates from the appropriate place. Once > the buddy is up and available it uses: > > struct page *page = alloc_pages_node(node, > GFP_KERNEL | __GFP_ZERO, get_order(size)); > > to get the memory so it should all be zero'd. So I would expect all > existing users to be covered by that? Can you not simply use __GFP_ZERO > for your allocations or use vmemmap_alloc_block() ?
Ah, I didn't notice the __GFP_ZERO. So it's just an s390 bug. Will move the memset to our code instead. Thanks!
| |