* How to turn on EPT support?
@ 2010-01-27 6:41 Superymk
2010-01-27 9:08 ` Zhang, Xiantao
2010-01-27 9:38 ` Tim Deegan
0 siblings, 2 replies; 9+ messages in thread
From: Superymk @ 2010-01-27 6:41 UTC (permalink / raw)
To: xen-devel; +Cc: ken.mingyuan
[-- Attachment #1.1: Type: text/plain, Size: 3121 bytes --]
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
[-- Attachment #1.2: Type: text/html, Size: 5333 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: How to turn on EPT support?
2010-01-27 6:41 How to turn on EPT support? Superymk
@ 2010-01-27 9:08 ` Zhang, Xiantao
2010-01-27 9:53 ` Li, Xin
2010-01-27 9:38 ` Tim Deegan
1 sibling, 1 reply; 9+ messages in thread
From: Zhang, Xiantao @ 2010-01-27 9:08 UTC (permalink / raw)
To: Superymk, xen-devel; +Cc: ken.mingyuan
[-- Attachment #1.1: Type: text/plain, Size: 3769 bytes --]
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@lists.xensource.com [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Superymk
Sent: Wednesday, January 27, 2010 2:42 PM
To: xen-devel@lists.xensource.com
Cc: ken.mingyuan@hotmail.com
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
[-- Attachment #1.2: Type: text/html, Size: 6900 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to turn on EPT support?
2010-01-27 6:41 How to turn on EPT support? Superymk
2010-01-27 9:08 ` Zhang, Xiantao
@ 2010-01-27 9:38 ` Tim Deegan
1 sibling, 0 replies; 9+ messages in thread
From: Tim Deegan @ 2010-01-27 9:38 UTC (permalink / raw)
To: Superymk; +Cc: ken.mingyuan, xen-devel
At 06:41 +0000 on 27 Jan (1264574490), Superymk wrote:
> 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.
It is in the hypervisor, if the tools ask for it.
> (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
That's the one - EPT's not enabled because the tools didn't ask for it.
Those flags are passed from the domain-builder tools in dom0
(xc_domain_create() in tools/libxc/xc_domain.c).
If you're using xend, it looks like those flags get assembled from magic
numbers in XendDomainInfo.py based on one of the many config objects.
Try adding 'hap=1' to your xm config file?
Tim.
--
Tim Deegan <Tim.Deegan@citrix.com>
Principal Software Engineer, Citrix Systems (R&D) Ltd.
[Company #02300071, SL9 0DZ, UK.]
^ permalink raw reply [flat|nested] 9+ messages in thread
* RE: How to turn on EPT support?
2010-01-27 9:08 ` Zhang, Xiantao
@ 2010-01-27 9:53 ` Li, Xin
2010-01-27 10:49 ` Superymk
0 siblings, 1 reply; 9+ messages in thread
From: Li, Xin @ 2010-01-27 9:53 UTC (permalink / raw)
To: Zhang, Xiantao, Superymk, xen-devel; +Cc: ken.mingyuan
[-- Attachment #1.1: Type: text/plain, Size: 4337 bytes --]
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.
Thanks!
-Xin
From: xen-devel-bounces@lists.xensource.com [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Zhang, Xiantao
Sent: Wednesday, January 27, 2010 5:09 PM
To: Superymk; xen-devel@lists.xensource.com
Cc: ken.mingyuan@hotmail.com
Subject: RE: [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@lists.xensource.com [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Superymk
Sent: Wednesday, January 27, 2010 2:42 PM
To: xen-devel@lists.xensource.com
Cc: ken.mingyuan@hotmail.com
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
[-- Attachment #1.2: Type: text/html, Size: 13764 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to turn on EPT support?
2010-01-27 9:53 ` Li, Xin
@ 2010-01-27 10:49 ` Superymk
2010-01-27 11:26 ` Pasi Kärkkäinen
0 siblings, 1 reply; 9+ messages in thread
From: Superymk @ 2010-01-27 10:49 UTC (permalink / raw)
To: Li, Xin, xen-devel
[-- Attachment #1.1: Type: text/plain, Size: 5087 bytes --]
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.
However I find that hap configuration belongs to the Timers category in Xen Configurations Details (http://www.xen.org/files/Support/XenConfigurationDetails.pdf), is it a mistake?
Miao
From: Li, Xin
Sent: Wednesday, January 27, 2010 5:53 PM
To: Zhang, Xiantao ; Superymk ; xen-devel@lists.xensource.com
Cc: ken.mingyuan@hotmail.com
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.
Thanks!
-Xin
From: xen-devel-bounces@lists.xensource.com [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Zhang, Xiantao
Sent: Wednesday, January 27, 2010 5:09 PM
To: Superymk; xen-devel@lists.xensource.com
Cc: ken.mingyuan@hotmail.com
Subject: RE: [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@lists.xensource.com [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Superymk
Sent: Wednesday, January 27, 2010 2:42 PM
To: xen-devel@lists.xensource.com
Cc: ken.mingyuan@hotmail.com
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
[-- Attachment #1.2: Type: text/html, Size: 15332 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to turn on EPT support?
2010-01-27 10:49 ` Superymk
@ 2010-01-27 11:26 ` Pasi Kärkkäinen
2010-01-27 11:50 ` Superymk
0 siblings, 1 reply; 9+ messages in thread
From: Pasi Kärkkäinen @ 2010-01-27 11:26 UTC (permalink / raw)
To: Superymk; +Cc: xen-devel, Li, Xin
On Wed, Jan 27, 2010 at 06:49:20PM +0800, Superymk wrote:
> 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.
> However I find that hap configuration belongs to the Timers category in
> Xen Configurations Details
> ([1]http://www.xen.org/files/Support/XenConfigurationDetails.pdf), is it a
> mistake?
>
Here's the wiki version of the pdf, created just yesterday:
http://wiki.xensource.com/xenwiki/XenConfigurationFileOptions
It's easy to edit and fix the stuff in the wiki now :)
-- Pasi
> Miao
> From: [2]Li, Xin
> Sent: Wednesday, January 27, 2010 5:53 PM
> To: [3]Zhang, Xiantao ; [4]Superymk ; [5]xen-devel@lists.xensource.com
> Cc: [6]ken.mingyuan@hotmail.com
> 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.
>
> Thanks!
>
> -Xin
>
>
>
> From: [7]xen-devel-bounces@lists.xensource.com
> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Zhang, Xiantao
> Sent: Wednesday, January 27, 2010 5:09 PM
> To: Superymk; [8]xen-devel@lists.xensource.com
> Cc: [9]ken.mingyuan@hotmail.com
> Subject: RE: [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@lists.xensource.com
> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Superymk
> Sent: Wednesday, January 27, 2010 2:42 PM
> To: xen-devel@lists.xensource.com
> Cc: ken.mingyuan@hotmail.com
> 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
>
>
>
>
>
> References
>
> Visible links
> 1. http://www.xen.org/files/Support/XenConfigurationDetails.pdf
> CTRL + Click to follow link
> http://www.xen.org/files/Support/XenConfigurationDetails.pdf
> 2. xin.li@intel.com
> mailto:xin.li@intel.com
> 3. xiantao.zhang@intel.com
> mailto:xiantao.zhang@intel.com
> 4. superymkxen@hotmail.com
> mailto:superymkxen@hotmail.com
> 5. xen-devel@lists.xensource.com
> mailto:xen-devel@lists.xensource.com
> 6. ken.mingyuan@hotmail.com
> mailto:ken.mingyuan@hotmail.com
> 7. mailto:xen-devel-bounces@lists.xensource.com
> 8. mailto:xen-devel@lists.xensource.com
> 9. mailto:ken.mingyuan@hotmail.com
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to turn on EPT support?
2010-01-27 11:26 ` Pasi Kärkkäinen
@ 2010-01-27 11:50 ` Superymk
2010-01-27 11:55 ` Pasi Kärkkäinen
0 siblings, 1 reply; 9+ messages in thread
From: Superymk @ 2010-01-27 11:50 UTC (permalink / raw)
To: PasiKärkkäinen; +Cc: xen-devel, Li, Xin
All right, I'll verify it. Can I really modify it on the xen wiki? I've
never dreamed about that. :)
--------------------------------------------------
From: "PasiKärkkäinen" <pasik@iki.fi>
Sent: Wednesday, January 27, 2010 7:26 PM
To: "Superymk" <superymkxen@hotmail.com>
Cc: <xen-devel@lists.xensource.com>; "Li, Xin" <xin.li@intel.com>
Subject: Re: [Xen-devel] How to turn on EPT support?
> On Wed, Jan 27, 2010 at 06:49:20PM +0800, Superymk wrote:
>> 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.
>> However I find that hap configuration belongs to the Timers category
>> in
>> Xen Configurations Details
>> ([1]http://www.xen.org/files/Support/XenConfigurationDetails.pdf), is
>> it a
>> mistake?
>>
>
> Here's the wiki version of the pdf, created just yesterday:
> http://wiki.xensource.com/xenwiki/XenConfigurationFileOptions
>
> It's easy to edit and fix the stuff in the wiki now :)
>
> -- Pasi
>
>> Miao
>> From: [2]Li, Xin
>> Sent: Wednesday, January 27, 2010 5:53 PM
>> To: [3]Zhang, Xiantao ; [4]Superymk ; [5]xen-devel@lists.xensource.com
>> Cc: [6]ken.mingyuan@hotmail.com
>> 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.
>>
>> Thanks!
>>
>> -Xin
>>
>>
>>
>> From: [7]xen-devel-bounces@lists.xensource.com
>> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Zhang,
>> Xiantao
>> Sent: Wednesday, January 27, 2010 5:09 PM
>> To: Superymk; [8]xen-devel@lists.xensource.com
>> Cc: [9]ken.mingyuan@hotmail.com
>> Subject: RE: [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@lists.xensource.com
>> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Superymk
>> Sent: Wednesday, January 27, 2010 2:42 PM
>> To: xen-devel@lists.xensource.com
>> Cc: ken.mingyuan@hotmail.com
>> 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
>>
>>
>>
>>
>>
>> References
>>
>> Visible links
>> 1. http://www.xen.org/files/Support/XenConfigurationDetails.pdf
>> CTRL + Click to follow link
>> http://www.xen.org/files/Support/XenConfigurationDetails.pdf
>> 2. xin.li@intel.com
>> mailto:xin.li@intel.com
>> 3. xiantao.zhang@intel.com
>> mailto:xiantao.zhang@intel.com
>> 4. superymkxen@hotmail.com
>> mailto:superymkxen@hotmail.com
>> 5. xen-devel@lists.xensource.com
>> mailto:xen-devel@lists.xensource.com
>> 6. ken.mingyuan@hotmail.com
>> mailto:ken.mingyuan@hotmail.com
>> 7. mailto:xen-devel-bounces@lists.xensource.com
>> 8. mailto:xen-devel@lists.xensource.com
>> 9. mailto:ken.mingyuan@hotmail.com
>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xensource.com
>> http://lists.xensource.com/xen-devel
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xensource.com
> http://lists.xensource.com/xen-devel
>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: How to turn on EPT support?
2010-01-27 11:50 ` Superymk
@ 2010-01-27 11:55 ` Pasi Kärkkäinen
0 siblings, 0 replies; 9+ messages in thread
From: Pasi Kärkkäinen @ 2010-01-27 11:55 UTC (permalink / raw)
To: Superymk; +Cc: xen-devel, Li, Xin
On Wed, Jan 27, 2010 at 07:50:43PM +0800, Superymk wrote:
> All right, I'll verify it. Can I really modify it on the xen wiki? I've
> never dreamed about that. :)
>
Yeah, you can, after you create an account.. :)
-- Pasi
> --------------------------------------------------
> From: "PasiKärkkäinen" <pasik@iki.fi>
> Sent: Wednesday, January 27, 2010 7:26 PM
> To: "Superymk" <superymkxen@hotmail.com>
> Cc: <xen-devel@lists.xensource.com>; "Li, Xin" <xin.li@intel.com>
> Subject: Re: [Xen-devel] How to turn on EPT support?
>
>> On Wed, Jan 27, 2010 at 06:49:20PM +0800, Superymk wrote:
>>> 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.
>>> However I find that hap configuration belongs to the Timers
>>> category in
>>> Xen Configurations Details
>>> ([1]http://www.xen.org/files/Support/XenConfigurationDetails.pdf),
>>> is it a
>>> mistake?
>>>
>>
>> Here's the wiki version of the pdf, created just yesterday:
>> http://wiki.xensource.com/xenwiki/XenConfigurationFileOptions
>>
>> It's easy to edit and fix the stuff in the wiki now :)
>>
>> -- Pasi
>>
>>> Miao
>>> From: [2]Li, Xin
>>> Sent: Wednesday, January 27, 2010 5:53 PM
>>> To: [3]Zhang, Xiantao ; [4]Superymk ; [5]xen-devel@lists.xensource.com
>>> Cc: [6]ken.mingyuan@hotmail.com
>>> 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.
>>>
>>> Thanks!
>>>
>>> -Xin
>>>
>>>
>>>
>>> From: [7]xen-devel-bounces@lists.xensource.com
>>> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Zhang,
>>> Xiantao
>>> Sent: Wednesday, January 27, 2010 5:09 PM
>>> To: Superymk; [8]xen-devel@lists.xensource.com
>>> Cc: [9]ken.mingyuan@hotmail.com
>>> Subject: RE: [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@lists.xensource.com
>>> [mailto:xen-devel-bounces@lists.xensource.com] On Behalf Of Superymk
>>> Sent: Wednesday, January 27, 2010 2:42 PM
>>> To: xen-devel@lists.xensource.com
>>> Cc: ken.mingyuan@hotmail.com
>>> 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
>>>
>>>
>>>
>>>
>>>
>>> References
>>>
>>> Visible links
>>> 1. http://www.xen.org/files/Support/XenConfigurationDetails.pdf
>>> CTRL + Click to follow link
>>> http://www.xen.org/files/Support/XenConfigurationDetails.pdf
>>> 2. xin.li@intel.com
>>> mailto:xin.li@intel.com
>>> 3. xiantao.zhang@intel.com
>>> mailto:xiantao.zhang@intel.com
>>> 4. superymkxen@hotmail.com
>>> mailto:superymkxen@hotmail.com
>>> 5. xen-devel@lists.xensource.com
>>> mailto:xen-devel@lists.xensource.com
>>> 6. ken.mingyuan@hotmail.com
>>> mailto:ken.mingyuan@hotmail.com
>>> 7. mailto:xen-devel-bounces@lists.xensource.com
>>> 8. mailto:xen-devel@lists.xensource.com
>>> 9. mailto:ken.mingyuan@hotmail.com
>>
>>> _______________________________________________
>>> Xen-devel mailing list
>>> Xen-devel@lists.xensource.com
>>> http://lists.xensource.com/xen-devel
>>
>>
>> _______________________________________________
>> Xen-devel mailing list
>> Xen-devel@lists.xensource.com
>> http://lists.xensource.com/xen-devel
>>
^ permalink raw reply [flat|nested] 9+ messages in thread
* How to turn on EPT support?
@ 2010-01-27 6:32 Superymk
0 siblings, 0 replies; 9+ messages in thread
From: Superymk @ 2010-01-27 6:32 UTC (permalink / raw)
To: xen-devel; +Cc: ken.mingyuan
[-- Attachment #1.1: Type: text/plain, Size: 3119 bytes --]
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
[-- Attachment #1.2: Type: text/html, Size: 5288 bytes --]
[-- Attachment #2: Type: text/plain, Size: 138 bytes --]
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xensource.com
http://lists.xensource.com/xen-devel
^ permalink raw reply [flat|nested] 9+ messages in thread
end of thread, other threads:[~2010-01-27 11:55 UTC | newest]
Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2010-01-27 6:41 How to turn on EPT support? Superymk
2010-01-27 9:08 ` Zhang, Xiantao
2010-01-27 9:53 ` Li, Xin
2010-01-27 10:49 ` Superymk
2010-01-27 11:26 ` Pasi Kärkkäinen
2010-01-27 11:50 ` Superymk
2010-01-27 11:55 ` Pasi Kärkkäinen
2010-01-27 9:38 ` Tim Deegan
-- strict thread matches above, loose matches on Subject: below --
2010-01-27 6:32 Superymk
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.