How to determine what portion of memory is cached?

Mike A. Harris (mharris@meteng.on.ca)
Wed, 10 Nov 1999 03:30:32 -0500 (EST)


Is there a way in the kernel startup code (or anywhere in kernel
for that matter) to determine what portions of physical system
RAM are cached?

I mean, other than manually benchmark testing memory regions for
speed, does the BIOS return this info?

If there is no standards answer of "yes", then do SOME machines
have a way of determining at runtime what areas of memory are
cached?

If there is no standard or nonstandard way of polling the BIOS
or chipset to determine this, then what would be an easy way to
manually bench memory to determine if it is cached (assuming that
some memory IS cached that is).

On boards where it is possible, I want to have the kernel
autodetect the memory regions which are NOT cached (or that are
cached - either is fine as one can be determined from the other),
and display a message on the screen at boot, giving a list of
uncached memory regions. This is to include any regions marked
uncacheable by the BIOS, as well as memory that cannot be cached
due to chipset limitations (like boards that will take 512Mb of
RAM, but only cache up to 64Mb for example).

Any pointers as to where to look in the kernel source for
something like this, or any code examples that someone might have
would be greatly appreciated. I'm looking at setup.c but have
been so far unable to find anything.

Thanks in advance.
TTYL

--
Mike A. Harris                                     Linux advocate     
Computer Consultant                                  GNU advocate  
Capslock Consulting                          Open Source advocate

Join the FreeMWare project - the goal to produce a FREE program in which you can run Windows 95/98/NT, and other operating systems.

http://www.freemware.org

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/