[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Qemu-devel] i386 page fault recovery / user-code continuation
From: |
Clemens Kolbitsch |
Subject: |
[Qemu-devel] i386 page fault recovery / user-code continuation |
Date: |
Wed, 10 Oct 2007 17:09:27 +0200 |
User-agent: |
KMail/1.9.6 |
hi everyone!
I have a question concerning how i386 execution is continued after a page
fault has occured...
What I have understood so far:
In the executing TB the TLB is checked and if the address is not found
__ld**** (e.g. __ldl_user)
is called. this calls
lb_fill
(if it really has to) which in turns asks
cpu_x86_handle_mmu_fault
if it is really a page fault or just a TLB miss... if it is a fault however,
tb_find_pc
finds the TB and its last assembler instruction and uses
raise_exception_err
to jump to the main-loop and handle the fault there --- I hope this is correct
so far :-)
My question now: where does the execution continue after the fault has been
handled? the saved assembler-instruction is the instruction AFTER
"call __ldl_user"
, what does not really make sense to jump back to...
Does "cpu_restore_state" find out what the last executing, translated op-code
was, restores that and continues at the BEGINNING of that op-code TB??
If someone could help me out on this, it'd be really appreciated ;-)
Thanks!!!
[Prev in Thread] |
Current Thread |
[Next in Thread] |
- [Qemu-devel] i386 page fault recovery / user-code continuation,
Clemens Kolbitsch <=