How to track non-RAM?
Posted: Fri Dec 30, 2005 1:28 am
This may seem like an odd question, but how does one best go about tracking regions of the physical address space that are not physical RAM?
Looking at the different ways of tracking physical memory, none of them seem to be quite appropriate. Bitmaps would be wasteful since most of the physical addresses may be unused (particularly in the PAE or 64-bit cases). Free "non-RAM page" stacks would be wasteful for the same reason. What sort of data structures and algorithms do you all use or recommend?
A side question -- I'm using GRUB. Some physical address regions are not present in the Multiboot memory map (i.e. -- they are actually not there, as opposed to entries that are present but whose type indicates that they are not usable RAM). Are these regions that aren't in the map guaranteed to be utterly useless (i.e. -- not mapped to any I/O devices ever)? I suspect the answer is "no" because of something to do with PCI, which I know nothing about yet... have mercy.
Looking at the different ways of tracking physical memory, none of them seem to be quite appropriate. Bitmaps would be wasteful since most of the physical addresses may be unused (particularly in the PAE or 64-bit cases). Free "non-RAM page" stacks would be wasteful for the same reason. What sort of data structures and algorithms do you all use or recommend?
A side question -- I'm using GRUB. Some physical address regions are not present in the Multiboot memory map (i.e. -- they are actually not there, as opposed to entries that are present but whose type indicates that they are not usable RAM). Are these regions that aren't in the map guaranteed to be utterly useless (i.e. -- not mapped to any I/O devices ever)? I suspect the answer is "no" because of something to do with PCI, which I know nothing about yet... have mercy.