WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-devel

Re: [Xen-devel] Quick questions- Xen hypervisor

To: Ashwini Bhat <apbhat@xxxxxxxx>
Subject: Re: [Xen-devel] Quick questions- Xen hypervisor
From: Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Date: Thu, 23 Jun 2011 10:25:13 +0100
Cc: xen-devel@xxxxxxxxxxxxxxxxxxx
Delivery-date: Thu, 23 Jun 2011 02:25:52 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <BANLkTinUG-+vEuR+FOSUYc637iHLVgkdKg@xxxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <BANLkTinUG-+vEuR+FOSUYc637iHLVgkdKg@xxxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
User-agent: Mutt/1.5.21 (2010-09-15)
Hi, 

At 15:38 -0700 on 22 Jun (1308757083), Ashwini Bhat wrote:
> Im trying to understand a little here:
> 
> 1) what is cr3 pointing to when in ring 0 i.e. when hypervisor is in control
> (in a scenario when hypervisor is just booting AND  when hypervisor got
> control due to a hypercall ) ?

In a PV guest CR3 points to the same thing as it did just before the
hypercall; Xen is mapped into every address space just like the kernel
is in linux.

In a HVM guest there's a special set of pagetables for each vcpu, called
the monitor tables, that contains only Xen; the hardware switches to
them on vmexit. 

During boot, and in some other contexts there's a special "idle"
pagetable that xen can run on, again containing only Xen.

> 2) The memory layout mentions that 0xffff830000000000 - 0xffff87ffffffffff
> [5TB, 5*2^40 bytes, PML4:262-271]
> is directly mapped.
> but even the calculation of  kernel addresses in __pa does not involve any
> page table translations. Isnt that as well directly mapped ?

Hypervisor addresses are mapped at XEN_VIRT_START; the physical
addresses are laid out contiguously at xen_phys_start.  See
__virt_to_maddr() for the translation.

> 3) Contrary to the above observation some room is made for xen text in
> memory management module
> /* Enough page directories to map the Xen text and static data. */
> l3_pgentry_t __attribute__ ((__section__ (".bss.page_aligned")))
>     l3_xenmap[L3_PAGETABLE_ENTRIES];
> l2_pgentry_t __attribute__ ((__section__ (".bss.page_aligned")))
>     l2_xenmap[L2_PAGETABLE_ENTRIES];
> 
> Am i right in thinking this is for translations without context switch
> during hypercalls from VMs ?

No; those are the L3 and L2 tables used to map the hypervisor text
and data (and bss).  They're statically allocated so they can be set up
before the memory allocators are initialized.  The idle pagetable's L4
table is also statically allocated, for the same reason.

Tim.

-- 
Tim Deegan <Tim.Deegan@xxxxxxxxxx>
Principal Software Engineer, Xen Platform Team
Citrix Systems UK Ltd.  (Company #02937203, SL9 0BG)

_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel

<Prev in Thread] Current Thread [Next in Thread>