Messages in this thread | | | Date | Tue, 29 Jan 2008 19:24:32 -0800 | From | Yinghai Lu <> | Subject | Re: [PATCH 2/2] x86_64: make early_node_mem return align address |
| |
On Tuesday 29 January 2008 06:55:45 pm Andi Kleen wrote: > On Tuesday 29 January 2008 18:41, Yinghai Lu wrote: > > On Tuesday 29 January 2008 01:33:29 am Andi Kleen wrote: > > > On Tuesday 29 January 2008 10:05, Yinghai Lu wrote: > > > > [PATCH 2/2] x86_64: make early_node_mem return align address > > > > > > > > boot oops when system get 64g or 128g installed > > > > > > Probably it should just use reserve_early(). Does this patch work? > > > > > > The alignment change is needed at some point too, but only to > > > relax the alignment to not force all early allocations to be page > > > padded. > > > > No, my patch doesn't force all early allocations to be page padded. > > for find_e820_mem, i just change PAGE_ALIGN to be aligned align > > parameter.... > > They are already all PAGE_ALIGN()ed (which is too strict, but needs > some care to fix properly), but your patch uses it the wrong way. > The PAGE_ALIGNment was added some time ago to avoid such over > lapping, but it should not actually be needed for that anymore. > > > > > only make early_node_mem have aligned data. because it seems it like > > to...and assume that. > > Using alignment doesn't seem the correct way to avoid overlapping. > > If there is still overlap then some reservation needs to be extended. > > > I think your patch will get early panic about overlap between bss and > > bootmem... like the 256g machine, bss is overlapped with early page > > table... > > Well did you test it? > > bss should have been reserved by this line in head64.c > > reserve_early(__pa_symbol(&_text), __pa_symbol(&_end)); > > (in git-x86). In earlier kernels it was checked for explicitely by the e820 > allocator.
no early panic. but the bss end still get corrupted.
because bootmap_start is used as <<PAGE_SHIFT, and it is overlapped with bss tail page.
YH
| |