Here is my imarginal LM32 TLB refill handler in psedo
assember code.  I never step across TLB off/on issue here.

It's O(1) algorithm to update TLB content made possible
by layouting PTE in a single linear array in kernel address
space.  Note that some i386 OS employs the very same
O(1) lookup strategy but most users are not aware of the fact.

TLBrefill:  # sometimes called fast TLB miss handler entry
   rcsr $et, CONTEXT
   ld $et, 0($et)
   wcsr TLBLO, $et

Note that it does not check the validity of $et value before TLB
injection before wcsr.  The occasion will be catched by another
exceptional condition to be solved by OS (in longer code path)

The O(1) array is mapped in kernel address space by TLB.
There is such an occasion that the ld insn triggers TLB miss
*while exception handler path* and it's the case while EXL bit
takes effect.

-nisimura
_______________________________________________
Devel mailing list
[email protected]
https://ssl.serverraum.org/lists/listinfo/devel

Reply via email to