Messages in this thread | | | Subject | Re: [PATCH 1/2] x86 boot: add E820_RESVD_KERN | From | "Huang, Ying" <> | Date | Mon, 30 Jun 2008 17:38:26 +0800 |
| |
On Mon, 2008-06-30 at 02:15 -0700, Yinghai Lu wrote: [...] > > > > I mean memory area reserved with reserved_early() or e820_update_range() > > before reserve_setup_data() is called. > > before parse_setup_data, reserve_early is called for > 1. kernel text/data/bss + initial pgt > 2. ramdisk > 3. ebda > e820_update_range is not called. > at this time early_res have RAM reserved by kernel. > > then setup_memory_map is called, so e820 have some ranges...directly > from e820 table > > next need to call parse_setup_data > it will add some entries in e820 > > then reserve_setup_data is called, it will use e820_update_range to > reserve setup_data itself directly in e820 > > ...
Yes. There is no real conflict now. I think a better rule is:
- Reserve memory area (directly from BIOS or boot-loader, not from find_e820_area) needed as early as possible. - Don't touch reserved area until all possible reservation is made, that is, before conflict check is done.
> > > > And because there is no conflict check in e820_update_range(), what to > > deal with potential conflict between setup_data and other memory area > > regardless which one is reserved earlier? > > find_e820_area will make sure it only find ram from e820 and it is not > conflict with early_res
For find_e820_area, this is safe enough. But what about conflict between setup_data and ebda or ramdisk?
Best Regards, Huang Ying
| |