hello, my friend:
According to my research with source code of xen, i
think the process is that:
first, when Guest OS is created by Xen/Domian0, it
install it's IDT through "set_trap_table" hypercall.
second, during Xen/GuestOS running, all interrupt/trap
will result a trap into Ring0, that is the layer of Xen.
for some trap, such as system-call, they will be dealt
with directly through interrupt hardware.
For the most of other traps, they will be dealt by xen,
and then dispatched to corresponding Guest OS.
in addition, there are other details to study
in-depth.
2008-03-09
房海峰
发件人: weiming
发送时间: 2008-03-09 09:33:41
收件人: Xen Developers
抄送:
主题: [Xen-devel] how page faults
are handled in paravirtualized xenguests?
Hi,
I got contradicted information about
the path of page fault handling under para-virtualized linux:
1) From
some web resources: page fault interruption is trapped by xen hypervisor and it
then dispatches to corresponding guest OS 2) From the book "a definitive
guide to xen hypervisor": when a guest is scheduled to run by hypervisor,
hypervisor installes the guest's IDT (except for special interrupts like timer)
to CPU. So almost all interrupts are handled by guest OS directly, bypassing the
xen hypervisor.
Which one is correct? (My guess is second one because
it's more efficient)
Thanks Weiming
|