WARNING - OLD ARCHIVES

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

xen-devel

RE: [Xen-devel][PATCH] patch to support super page (2M) with EPT

To: "Keir Fraser" <keir.fraser@xxxxxxxxxxxxx>, "Li, Xin B" <xin.b.li@xxxxxxxxx>, "Xin, Xiaohui" <xiaohui.xin@xxxxxxxxx>, <xen-devel@xxxxxxxxxxxxxxxxxxx>
Subject: RE: [Xen-devel][PATCH] patch to support super page (2M) with EPT
From: "Huang2, Wei" <Wei.Huang2@xxxxxxx>
Date: Wed, 14 May 2008 16:22:51 -0500
Delivery-date: Wed, 14 May 2008 14:24:11 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxx
In-reply-to: <C45063F8.20AE6%keir.fraser@xxxxxxxxxxxxx>
List-help: <mailto:xen-devel-request@lists.xensource.com?subject=help>
List-id: Xen developer discussion <xen-devel.lists.xensource.com>
List-post: <mailto:xen-devel@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/cgi-bin/mailman/listinfo/xen-devel>, <mailto:xen-devel-request@lists.xensource.com?subject=unsubscribe>
References: <85CE8AA0A115F64E8267A90E4535A974370D90@xxxxxxxxxxxxxxxxx> <C45063F8.20AE6%keir.fraser@xxxxxxxxxxxxx>
Sender: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx
Thread-index: AcixtI2cNu+RrX7tTVSjV8PSHh1HuQB410nQABQp/hAAAFqOgAAFDyzIABW0HjAAIDNA0wAJ4G3QAABTapAAAHFJKQAEFQNgACNXZhwAGkpxMA==
Thread-topic: [Xen-devel][PATCH] patch to support super page (2M) with EPT
Keir,
 
Here is the latest version. The changes include:
 
1. NORMAL_PAGE_ORDER and SUPER_PAGE_ORDER are removed
2. Changes to __copy_from_guest_offset() index are removed from populate_physmap() function
3. Because of (2), a super_page_array is created and passed to xc_domain_memory_populate_physmap() for allocating 2M pages
4. When 2M requests can not be satisfied, use 4K pages instead.
 
 
Thanks,
 
-Wei


From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
Sent: Wednesday, May 14, 2008 3:40 AM
To: Huang2, Wei; Li, Xin B; Xin, Xiaohui; xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel][PATCH] patch to support super page (2M) with EPT

You now break the populate_physmap interface like the original Intel patch did. You cannot change the index argument to __copy_from_guest_offset(). Also you add in a bogus printk in the same chunk of the patch.

You do not use SUPER_PAGE_ORDER anywhere, and NORMAL_PAGE_ORDER only in some places. You may as well remove both macros.

 -- Keir

On 13/5/08 16:49, "Huang2, Wei" <Wei.Huang2@xxxxxxx> wrote:

Re-submit. It fixes the issues based on your comments.

Thanks,

-Wei


From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]
Sent: Tuesday, May 13, 2008 8:51 AM
To: Li, Xin B; Huang2, Wei; Xin, Xiaohui; xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: Re: [Xen-devel][PATCH] patch to support super page (2M) with EPT

Exactly. The interface for populate_physmap() is clear — if you ask for order-9 allocations then that is what you must get. Otherwise the allocation fails. It is up to the caller to retry with order-0 allocations _if_ that is a suitable fallback.

 -- Keir

On 13/5/08 14:39, "Li, Xin B" <xin.b.li@xxxxxxxxx> wrote:

if  2M page allocation fails, the domain builer will try to use 4K allocation  instead.
-Xin

 

 
 

From: xen-devel-bounces@xxxxxxxxxxxxxxxxxxx   [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx]  On Behalf Of Huang2,  Wei
Sent: 2008年5月13日  21:37
To: Keir Fraser; Xin, Xiaohui;   xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE:  [Xen-devel][PATCH] patch  to support super page (2M) with  EPT

 
 
 

Memory.c  looks more invasive because it takes  care of failure cases using 4KB pages.  Xiaohui’s patch tries to  allocate pages using extend_order. But if this  request fails for any  reason, the guest cannot be started anymore.   



-Wei



 
 

From: Keir Fraser  [mailto:keir.fraser@xxxxxxxxxxxxx]  
Sent: Tuesday, May 13, 2008 3:47  AM
To: Huang2,  Wei; Xin, Xiaohui;  xen-devel@xxxxxxxxxxxxxxxxxxx
Subject:  Re: [Xen-devel][PATCH] patch  to support super page (2M) with  EPT

 
 
Overall your  changes to common code seem a bit  more invasive than in the Intel patch. In  particular I don’t  understand why you made such changes to common/memory.c.  The other  patch makes far fewer changes (and even some of those would go away   since they have erroneously changed the populate_physmap interface).  So my  feeling is that the Intel patch is a slightly more elegant base  to start with:  extra changes that your patch makes really need to be  accounted  for.

 -- Keir

On 12/5/08 18:28, "Huang2,  Wei"  <Wei.Huang2@xxxxxxx> wrote:

Here is  a revised version. I get rid of 4MB  support, as suggested. I did not see the  issue mentioned by Xiaohui  related to splitting last 2M into 4KB pages. But  anyway, I attached  two versions for your reference. Keir, please let me know  if you have  comments.

 
-Wei


 




From: Keir Fraser [mailto:keir.fraser@xxxxxxxxxxxxx]   
Sent: Monday, May 12, 2008 2:03 AM
To: Xin,  Xiaohui;  Huang2, Wei; xen-devel@xxxxxxxxxxxxxxxxxxx
Subject:  Re:  [Xen-devel][PATCH] patch to support super page (2M) with  EPT

Yes,  absolutely no need for 4M page support. We do not  support the 32-bit non-PAE  build target any more.

 --  Keir

On 12/5/08 06:04, "Xin,  Xiaohui"  <xiaohui.xin@xxxxxxxxx> wrote:

Some  comments here:
1) Basically 4M pages   allocations is not hardware  naturally for EPT, we only use 2M  super pages now.  
I remembered that  Keir said that 2M pages  allocation is sufficient, and he  removed all the  pure 32bit  support already.
2)  If we don’t allocate  the last 2M   area with 4kb pages, the EPT will meet some problem. Xen will set   one of  the 4k page
     there to be  invalid,   logically that means we should invalid the all the 2M  page if we  allocate it  with 2M, and then the   
     special pages Xen used  in the  high end  of the guest memory can not be used then. May we know how you   cope with    that?
 
Thanks
Xiaohui
 


 


 



From:    xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx]    On Behalf Of Huang2, Wei
Sent: Monday, May 12,  2008  12:36  PM
To: Xin, Xiaohui;    xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE:  [Xen-devel][PATCH]  patch  to support super page (2M) with  EPT

This  is the  latest one I created. Please review it and  I will   re-submit.
 
1.
        It  includes the  patch for p2m-ept.c,  directly from your previous patch.    

2.         Xc_hvm_create.c   is based on my original  approach. It includes support for both 2MB and  4MB  pages. Also  it considers the case of odd page size (such as 255MB).  But I did   not allocate the last 2MB area using 4KB  pages. Let me   know if it is a  big issue.

3.         The  rest are  pretty  similar.


Thanks,
 
-Wei
 

From:   xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx]    On Behalf Of Huang2, Wei
Sent: Sunday, May 11,  2008  3:34  PM
To: Xin, Xiaohui;    xen-devel@xxxxxxxxxxxxxxxxxxx
Subject: RE:  [Xen-devel][PATCH]  patch  to support super page (2M) with  EPT

Could  we work  together for a common solution? As far  as I can see, it largely   overlaps with my super page patch. The major  difference is  between p2m.c  and   p2m-ept.c.
 
-Wei
 

From:   xen-devel-bounces@xxxxxxxxxxxxxxxxxxx [mailto:xen-devel-bounces@xxxxxxxxxxxxxxxxxxx]    On Behalf Of Xin, Xiaohui
Sent: Friday, May 09,  2008  4:11  AM
To:  xen-devel@xxxxxxxxxxxxxxxxxxx
Subject:    [Xen-devel][PATCH] patch to support super page (2M) with    EPT

Attached are the  patches to support   super page with EPT. We only support 2M size. And  shadow may  still work fine  with 4K pages.
The patches can be split  into  3 parts. Apply order is as  attached.
 
tool.diff
To   allocate 2M physical contiguous memory  in guest except the first  2M and  the last 2M.
The first 2M covers special  memory, and  Xen use the last  few pages in guest memory to do special   things.
We let them to be 4K  pages as  normal.
super_page_common.patch  
To modify the p2m   interfaces by adding an order parameter, such as    guest_physmap_add_page(), p2m_set_entry(),    etc.
p2m-ept-file.patch
           To    handle the EPT tables to support super page.               
 
 
Signed-off-by:    Xin Xiaohui <xiaohui.xin@xxxxxxxxx>
Signed-off-by: Li  Xin, B    <xin.b.li@xxxxxxxxx>
 

 

 


 




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



 




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

 





Attachment: super_page_patch.txt
Description: super_page_patch.txt

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