qemu-devel
[Top][All Lists]
Advanced

[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!!!




reply via email to

[Prev in Thread] Current Thread [Next in Thread]