Forward Page Tables vs. Inverted Page Tables
yarchive.net
yarchive.net
The problem is that in practice you need to keep information about each virtual page anyway, or at least it's very convenient to be able to do so. For example, the Linux MM stores (or at least did last time I looked), uses the PTE to store the location of swapped-out pages. The UVM paper describes very thoroughly why it's useful to have per-virtual page state around: https://www.usenix.org/legacy/event/usenix99/full_papers/cra...; see also http://www.cs.columbia.edu/~krj/os/lectures/L17-LinuxPaging.....
Or that is the theory, as told to me by a big inverted page table advocate a couple of years before of Linus's comments.
Personally, I tend to favor Linus's perspective. Particularly because making an optimal decision about how large the page table hash is, turns out to be pretty hard to do at runtime. Changing the size is even harder. This means that you either waste a lot of unnecessarily memory on the inverted tables, or you tend to take excessive page table misses, and waste a lot more than 3 cache line fills satisfying them.
Brilliant sound bite. I've always love academic work, however it does really account for a very small portion of actually creating something.