Re: L1/L2 Cache Coloring from Userland ?

J.D. Bakker (bakker@thorgal.et.tudelft.nl)
Thu, 18 Sep 1997 12:21:42 +0200


>> Is there any way for a program to control or find out to which L1/L2 cache
>> lines/regions certain areas of memory are mapped ? Take the following
>> example:

>L2 is tricker. Allocating a single contiguous block doesnt even help you as it
>may not be physically contiguous

Am I correct in assuming that a block that starts out as physically
contiguous may be fragmented when it is swapped out and in again ? Is there
another way in which this fragmentation can happpen ? I'm not too well
versed in the mm aspects of the kernel.

If blocks only fragment on swap, it should be enough to disable swap on the
machine in question (a calculation server which should *never* be swapping
anyway), and to determine if a block is physically contiguous to start
with. Is there such a thing as a VirtualToPhysical syscall, a call that can
be misused to do this, or should I take the Source and start hacking ?

It would still be best if it were possible to allocate a contiguous range
of memory. Ah well, maybe it's time for YAOMF[1]...

Sincerely,

Jan-Derk Bakker.
[1] Yet Another Obscure Mmap Flag

Jan-Derk Bakker
Official Usenet Net.scum; see http://www.netscum.net