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] How to turn on EPT support?

To: Superymk <superymkxen@xxxxxxxxxxx>, "xen-devel@xxxxxxxxxxxxxxxxxxx" <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel] How to turn on EPT support?
From: "Zhang, Xiantao" <xiantao.zhang@xxxxxxxxx>
Date: Wed, 27 Jan 2010 17:08:52 +0800
Accept-language: en-US
Acceptlanguage: en-US
Cc: "ken.mingyuan@xxxxxxxxxxx" <ken.mingyuan@xxxxxxxxxxx>
Delivery-date: Wed, 27 Jan 2010 01:31:40 -0800
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
In-reply-to: <BLU135-DS2D76161E0874ECCF007A9A25D0@xxxxxxx>
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: <BLU135-DS2D76161E0874ECCF007A9A25D0@xxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcqfG9YHZOls6YQdQ6eC8/jfDceZxwAE/VnA
Thread-topic: [Xen-devel] How to turn on EPT support?
Can you check Xen's boot log to see whether the sentence as following is printed out ?
 
(XEN) HVM: Hardware Assisted Paging detected. 
 
I don't know Xen-3.4.2's policy for EPT's default option, maybe you can add "hap=1" in your configuration file to ensure EPT on when you create virtual machine  if the system supports it.
 
Xiantao


From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx] On Behalf Of Superymk
Sent: Wednesday, January 27, 2010 2:42 PM
To: xen-devel@xxxxxxxxxxxxxxxxxxx
Cc: ken.mingyuan@xxxxxxxxxxx
Subject: [Xen-devel] How to turn on EPT support?

To test if EPT is enabled on my machine, I add some codes in my own xen shadow and create a guest vm (named testvm) by Virtual Machine Manager. However, it seems that testvm doesn't use EPT at all (See the log). So how to turn on EPT support? I thought it should be enabled automatically. 
 
My box is configured as:
Intel Core i7 965
2G*3 DDR3 1333
Seagate 1T
 
Centos 5.2
Xen-3.4.2 with linux 2.6.18 xenified kernel (downloaded from xen.org)
 
Log:
(XEN) (Joan)domain.c:388: Domain ID 32767
(XEN) (Joan)domain.c:389: is_hvm_domain(d) 0
(XEN) (Joan)domain.c:390: hvm_funcs.hap_supported 0
(XEN) (Joan)domain.c:391: (domcr_flags & DOMCRF_hap) 0
(XEN) (Joan)p2m.c:1464: is_hvm_domain(d)  0
(XEN) (Joan)p2m.c:1465: d->arch.hvm_domain.hap_enabled 0
(XEN) (Joan)p2m.c:1466: X86_VENDOR_INTEL 1
(XEN) (Joan)p2m.c:1473: d->arch.p2m->set_entry FFFF828C8019FD50
(XEN) (Joan)p2m.c:1474: p2m_set_entry FFFF828C8019FD50
(XEN) (Joan)domain.c:388: Domain ID 0
(XEN) (Joan)domain.c:389: is_hvm_domain(d) 0
(XEN) (Joan)domain.c:390: hvm_funcs.hap_supported 1
(XEN) (Joan)domain.c:391: (domcr_flags & DOMCRF_hap) 0
(XEN) (Joan)p2m.c:1464: is_hvm_domain(d)  0
(XEN) (Joan)p2m.c:1465: d->arch.hvm_domain.hap_enabled 0
(XEN) (Joan)p2m.c:1466: X86_VENDOR_INTEL 1
(XEN) (Joan)p2m.c:1473: d->arch.p2m->set_entry FFFF828C8019FD50
(XEN) (Joan)p2m.c:1474: p2m_set_entry FFFF828C8019FD50
(XEN) (Joan)domain.c:388: Domain ID 1
(XEN) (Joan)domain.c:389: is_hvm_domain(d) 1
(XEN) (Joan)domain.c:390: hvm_funcs.hap_supported 1
(XEN) (Joan)domain.c:391: (domcr_flags & DOMCRF_hap) 0
(XEN) (Joan)p2m.c:1464: is_hvm_domain(d)  1
(XEN) (Joan)p2m.c:1465: d->arch.hvm_domain.hap_enabled 0
(XEN) (Joan)p2m.c:1466: X86_VENDOR_INTEL 1
(XEN) (Joan)p2m.c:1473: d->arch.p2m->set_entry FFFF828C8019FD50
(XEN) (Joan)p2m.c:1474: p2m_set_entry FFFF828C8019FD50
 
Modified Code:
/* Init the datastructures for later use by the p2m code */
1442: int p2m_init(struct domain *d)
{
    struct p2m_domain *p2m;
 
    p2m = xmalloc(struct p2m_domain);
    if ( p2m == NULL )
        return -ENOMEM;
 
    d->arch.p2m = p2m;
 
    memset(p2m, 0, sizeof(*p2m));
    p2m_lock_init(p2m);
    INIT_PAGE_LIST_HEAD(&p2m->pages);
    INIT_PAGE_LIST_HEAD(&p2m->pod.super);
    INIT_PAGE_LIST_HEAD(&p2m->pod.single);
 
    p2m->set_entry = p2m_set_entry;
    p2m->get_entry = p2m_gfn_to_mfn;
    p2m->get_entry_current = p2m_gfn_to_mfn_current;
    p2m->change_entry_type_global = p2m_change_type_global;
 
 joan_dprintk("is_hvm_domain(d)  %d\n", is_hvm_domain(d));
 joan_dprintk("d->arch.hvm_domain.hap_enabled %d\n", d->arch.hvm_domain.hap_enabled);
 joan_dprintk("X86_VENDOR_INTEL %d\n", (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL));
    if ( is_hvm_domain(d) && d->arch.hvm_domain.hap_enabled &&
         (boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) )
 {
  joan_dprintk("Add Ept Support\n");
        ept_p2m_init(d);
 }
 joan_dprintk("d->arch.p2m->set_entry %lX\n", (uint64_t)(d->arch.p2m->set_entry) );
 joan_dprintk("p2m_set_entry %lX\n", (uint64_t)p2m_set_entry);
 
    return 0;
}
 
 
Thanks,
Miao

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