All of lore.kernel.org
 help / color / mirror / Atom feed
* 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.