I found the problem..
As I originally thought,  recursive faults are indeed allowed (a fault 
handler is allowed to fault), however, the *invocation* of a fault handler 
must succeed, or it increases the exception count, and calls double fault, 
etc.

A triple fault wouldn't be a 3rd nested exception, but a fault when trying to 
invoke the double fault handler, which was invoked because the cpu failed to 
invoke some other handler.

Anyhow, the problem was in my PL0 stack not being in memory in my new 
process, so that it couldn't do anything at all, generating faults in the 
attempts to invoke exception handlers, thus committing shutdown.

Nested/recrusive page fault handlers work perfectly now, with no limit on the 
nest-level.

Reply via email to