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