[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-ia64-devel] RE: Question about paravirtualization

  • To: "Haavard Bjerke" <havard.bjerke@xxxxxxx>
  • From: "Magenheimer, Dan (HP Labs Fort Collins)" <dan.magenheimer@xxxxxx>
  • Date: Mon, 6 Jun 2005 08:38:32 -0700
  • Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
  • Delivery-date: Mon, 06 Jun 2005 15:37:37 +0000
  • List-id: DIscussion of the ia64 port of Xen <xen-ia64-devel.lists.xensource.com>
  • Thread-index: AcVpQgvP1ntPi3BtROaK+uuValBfOgBatpnA
  • Thread-topic: Question about paravirtualization

The thash instruction is non-privileged but provides data
about the VHPT which is a privileged data structure.  In
Xen/ia64 there are multiple VHPTs: One** maintained
by Xen and one maintained by each guest.  If thash executes
unchanged, it returns data about Xen's VHPT which is
meaningless to the guest.  So the thash instruction
needs to be replaced by something which traps and can
be interpreted by Xen, which "emulates" the instruction
by returning data about the guest's VHPT.

> Will Xenlinux' 
> fault handlers ever be executed? Won't the hypervisor's IVT 
> be used instead?

If a TLB fault occurs while Xen is executing in Xen's virtual
address space, the Xen IVT handles it.  If a TLB fault
occurs when the guest is executing in the guest's virtual
address space, Xen "reflects" the TLB fault to the guest
and the guest's IVT handles it.

Does that answer your questions?


** There has been some discussion on this list about changing
the existing Xen VHPT to a per-guest VHPT but we will
ignore that for now.

> -----Original Message-----
> From: Haavard Bjerke [mailto:havard.bjerke@xxxxxxx] 
> Sent: Saturday, June 04, 2005 2:15 PM
> To: Magenheimer, Dan (HP Labs Fort Collins)
> Cc: xen-ia64-devel@xxxxxxxxxxxxxxxxxxx
> Subject: Question about paravirtualization
> I'm looking the Xenlinux paravirtualization, just for the 
> sake of studies, and a few questions came to mind.
> In ivt.S, the "thash" instructions are replaced with "tak" 
> instructions. I understand the need for paravirtualizing 
> thash instructions, but not in Xenlinux' IVT. Will Xenlinux' 
> fault handlers ever be executed? Won't the hypervisor's IVT 
> be used instead? Are these instructions paravirtualized just in case?
> And is the choice of the "tak" instruction just so that a 
> privop fault will be rised, or does it have a function?
> Thanks,
> Haavard

Xen-ia64-devel mailing list



Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.