Hello. I have been doing some recreational digging in CS literature in a
recent project aimed at understanding virtual memory implementations. I was
perplexed that Intel's 486 design included only a 32-entry TLB (translation
lookaside buffer) and that it is flushed on each context switch. To me, green
as I was, this seemed like a very likely bottleneck for heavy users of VM such
as Linux. The literature available on the net bore this assumption out: TLB
misses are significant performance problems which become only _more_ significant
as processors continue to out-pace memory and data/code grows.
To make a long post short, I am not a systems programmer, but two CS papers
stood out as being potentially very useful in the future development of the
Linux kernel. If the specific techniques outlined are not implementable on the
486 and kin (to the best of my memory the 486 does not allow software
management of the TLB, etc.), then certainly the ideas will be food for
improvements in VM implementation. Hopefully this forum will reach some of the
people working on this area of the kernel.
The first paper is the largest, but the most inovative. It is a 2Mb PS file
with a web page front-end containing the abstract:
Ph.D. Dissertation: Using Virtual Memory to Improve Cache and TLB Performance
The second is a <200Kb PS file:
Surpassing the TLB Performance of Superpages with less Operating System Support
The author of the second paper has a homepage with link to the paper:
Long live Linux.
P.S. This was originally posted to comp.os.linux.development.system - hesitantly.
Now that I've found it, I am _sure_ this list is the best place to post this info.