Page 1 of 1

TSS with paging enabled

Posted: Tue Jul 06, 2004 5:45 am
by petruss
Hello!
When I try to switch to a hardware task with paging enabled I get this:
"exception(): 3rd (14) exception with no resolution, shutdown status is 00h, resetting" in bochs.
Is this because of my page fault handler doesn't handle the page fault?
But why am I getting this page fault? I have mapped both the EIP and ESP of the task.

Re:TSS with paging enabled

Posted: Sat Jul 10, 2004 1:59 pm
by Dreamsmith
I was getting this error a few days ago due to accidently switching my own stack out from under me while switching the PDBR :-[ -- your standard page fault handler isn't invoked because you get a page fault while trying to invoke the page fault hander.

There are quite a few different reasons why this might be happening, depending on the location of the TSS, the contents of the TSS's cs & eip, ss & esp, ss0 & esp0, CR3/PDBR, plus it could be the switch is actually occuring fine but the page fault occurs almost immediately thereafter. You mentioned that the addresses cs:eip and ss:esp point to are mapped, but what about ss0:esp0? If that isn't also mapped, any interrupt that comes along is going to blow up because it'll try to switch to the privileged stack, and if it can't, you'll see that same error.

Could be something else as well. Just tossing out some ideas...