* Yinghai Lu <[EMAIL PROTECTED]> wrote: > > btw., it would be nice to have some "lots of RAM simulation" > > debugging code which would just _fake_ a really large e820 map and > > would in the end throw away the 'fake' pages later during bootup. > > Perhaps tell the early allocator to never allocate into these fake > > areas [via an struct e820 entry flag], but all our sizing code and > > the boot bitmaps, etc. would be sized accordingly, as if we had this > > much RAM - and we'd trigger these nuances. We could put this into a > > new "fakemem=128GB" boot option and hence we could boot with > > fakemem=128GB on a 2GB box and could at least hope to be able to > > boot [with some serious amount of RAM wasted on over-sized > > pagetables, allocator bitmaps and mem_map[]]. Hm? > > sound interesting. but need some variable to prevent using non exist > page.
yeah, exactly. You could try into using the "PG_arch_1" struct page ->flags bit - it's not utilized on x86. That way we could avoid free-ing it into the general page pool. We could check for it in arch/x86/mm/init_64.c's online_page() function [that's where we release most pages into the page pool]. Perhaps it might also be handy to introduce a page_is_fake_ram(addr) method that searches the e820 maps for fake ram, to make sure we never allocate such ranges. Such a feature would be very useful. Ingo -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to [EMAIL PROTECTED] More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/