[Query on intended logic]
I am trying to learn qemu's MMU emulation logic for x86 and came across H. Peter Anvin's SMAP commit (
link). I have the following doubt on the intended logic (apologies if it is trivial)
As per my understanding (which matches versions prior to this commit), we generally maintain only two TLBs [one for kernel and one for user] in x86 ISA for caching address translations. With this commit we seem to have three modes of MMU, although only two will be actually used (either KSMAP or KNOSMAP). Is my claim valid ? Why cannot those two original modes serve the purpose and why is the separation (of KNOMAP and KSMAP) needed?
Thanks in advance,
Sandhya