|
|
|
|
|
|
|
|
|
|
xen-devel
Re: [Xen-devel] TLB-miss handling in Xen 3.0
> 1. Each guest-OS has got a *physical-to-machine* table where as the
> hypervisor has got a globally readable
> *machine-to-physical* table.
>
> My questions are the following:
>
> 1. An unmodified linux guest-OS would have *virtual-to-physical* mapping in
> its page-table. Given the need of para-virtualization,
> does it have a *virtual-to-machine* mapping as well in addition to the
> mapping talked about in the interface manual?
Paravirt guests build pagetables that map virtual to machine addresses. To
ease the effort of porting, much of the guest code uses "physical" addresses,
which are translated to machine addresses using the P2M table before being
installed into the page tables. So actually, guest pagetables are a
virtual-to-machine mapping.
Unmodified guests under VT-x/SVM don't do this, so Xen implements an extra
level of indirection called "shadow pagetables". The guest is permitted to
create a "virtual-to-physical" table, and Xen maintains a "shadow" which
implements "virtual-to-machine" translations and can be used directly by the
hardware.
> 2. If there exists such a *virtual-to-machine* mapping for a guest-OS
> (assuming the anwer to Q1 is "yes"), what happens for TLB miss for a
> process running inside a guest-OS?
> If the hypervisor is responsible for the update, is it aware of virtual
> address associated with a process running inside a guest-OS and how does
> he do it? If any hardware circuitry is responsible for doing that, is it
> aware of
> virtual address associated with a process running inside a guest-OS and
> how does he do it?
On x86, a TLB miss causes the CPU to walk the page tables and fill in the TLB
entry itself. This works as normal, without a trap.
For paravirt guests, because the guest fills out the page tables directly with
machine addresses. The processor uses the addresses in the guest pagetable
directly.
For unmodified guests, Xen builds shadow pagetables that translate from guest
virtual to real machine addresses, so the CPU uses these directly. In this
case, the pagetables created by the guest are never used directly.
HTH,
Mark
--
Dave: Just a question. What use is a unicyle with no seat? And no pedals!
Mark: To answer a question with a question: What use is a skateboard?
Dave: Skateboards have wheels.
Mark: My wheel has a wheel!
_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
|
|
|
|
|