virtual memory 4520
virtual memory 4521
Andi Kleen I fully agree. I should have been clearer in specifying that the "easy" implementation (where...
Doing PAE properly (allowing all interesting data structures to grow above the direct mappable area) is very very hard. It gets worse the bigger than VA:max managed memory ratio is. 1:2 is not that bad, but when you get into 1:8 or 1:16 things get nasty.
The problem is that for each operation you need to guarantee in advance that all the VA areas needed for it together won't exceed the available VA. In OS this can be very complicated because if you involve anything with drivers they can call back to other subsystems that might need more VA. And multiple such operations can be in flight in parallel.
All of it can be done but it may require major redesigns to handle all this correctly.
I would say PAE is far more intrusive to an existing code base than a clean 64bit port Often you see OS cheating and giving up before the full 64GB (like 16GB) or adding hacks like memory areas that can only be used for a single special purposes or adding other arbitary limits.
Now you can argue that this is only a problem the OS writer have and most user level programers can ignore. While that's true they still see nasty side effects in that they can't use all the memory they want easily.