|   | 
      | 
  
  
      | 
      | 
  
 
     | 
    | 
  
  
     | 
    | 
  
  
    |   | 
      | 
  
  
    | 
         
xen-devel
Re: [Xen-devel] How to turn on EPT support?
 
| 
 Thanks. I tailor the hvm example configuration file in 
xen manually instead of using Virtual Machine Manager. I use your 
method to verify it and the problem is solved now.  
  
Miao 
  
Sent: Wednesday, January 27, 2010 5:53 PM 
Subject: RE: [Xen-devel] How to turn on EPT 
support?   
  
i7 
965 has EPT support. 
Use 
command ?xm debug-k v; xm dmesg? to see if EPT pointer is 0. If 0 then EPT 
should disabled for the guest. 
as 
Xiantao mentioned, I guess your hap in config file is set to 0. By default if 
you don?t set it, ept should be enabled. 
  
  
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.   
Xen-3.4.2 with linux 2.6.18 xenified 
kernel (downloaded from xen.org)  
(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  
/* 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;  
    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);  
  
 |  
 _______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel
 
 |   
 
 | 
    | 
  
  
    |   | 
    |