On Thu, Oct 08, 2009 at 11:46:00PM +0800, Wu Zhangjin wrote: > > Are the non-memory parts marked as reserved? > > > No, so, is that a need to mark them? Initially all pages are marked as reserved. Which seems to be good enough for x86: $ cat /proc/iomem 00000000-0009efff : System RAM 0009f000-0009ffff : reserved 000c0000-000cffff : pnp 00:0d 000e0000-000fffff : pnp 00:0d 00100000-7fe5b7ff : System RAM [...] The 0x9f000 - 0x9ffff range is the good old ISA I/O memory range (classic MDA/CGA/VGA etc.), that is non-memory yet: #ifdef CONFIG_FLATMEM #define pfn_valid(pfn) ((pfn) < max_mapnr) #endif /* CONFIG_FLATMEM */ is sufficient on x86 so I think something else must be wrong. Ralf