* Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx> wrote:
On Fri, 17 Apr 2009, Ingo Molnar wrote:Could we perhaps round up to 1MB in this case too?(The below 1MB one).
I'd argue against it, at least in this incarnation. I can well imagine somebody wanting to do resource management in the 640k-1M window, so..
ok - indeed - if there's some super-small system with limited address lines and all physical addresses tightly packed with RAM?
BIOS-provided physical RAM map:
BIOS-e820: 0000000000000000 - 000000000009fc00 (usable) 0.639 MB RAM
BIOS-e820: 000000000009fc00 - 00000000000a0000 (reserved) 0.001 MB
[ hole ] 0.250 MB
BIOS-e820: 00000000000e0000 - 0000000000100000 (reserved) 0.125 MB
BIOS-e820: 0000000000100000 - 000000003ed94000 (usable) 1004.5 MB RAM
BIOS-e820: 000000003ed94000 - 000000003ee4e000 (ACPI NVS) 0.7 MB
BIOS-e820: 000000003ee4e000 - 000000003fea2000 (usable) 16.3 MB RAM
BIOS-e820: 000000003fea2000 - 000000003fee9000 (ACPI NVS) 0.3 MB
BIOS-e820: 000000003fee9000 - 000000003feed000 (usable) 0.15 MB RAM
BIOS-e820: 000000003feed000 - 000000003feff000 (ACPI data 0.07 MB
BIOS-e820: 000000003feff000 - 000000003ff00000 (usable) 0.004 MB RAM
[ hole ] 1.0 MB
[ hole ] 3072.0 MB
On this map, using your scheme, we'd fill up that small 1MB hole up to 1GB [mockup]:
BIOS-e820: 000000003ff00000 - 0000000040000000 (RAM buffer)
I guess that's a good thing not just for robustness: a chipset might be faster when DMA or mmio is on some well-isolated physical memory range, not too close to real RAM or other devices?