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-changelog

[Xen-changelog] [xen-unstable] x86: Allow guests to allocate up to 2MB (

To: xen-changelog@xxxxxxxxxxxxxxxxxxx
Subject: [Xen-changelog] [xen-unstable] x86: Allow guests to allocate up to 2MB (superpage) memory extents.
From: Xen patchbot-unstable <patchbot-unstable@xxxxxxxxxxxxxxxxxxx>
Date: Fri, 19 Jun 2009 00:55:53 -0700
Delivery-date: Fri, 19 Jun 2009 01:01:03 -0700
Envelope-to: www-data@xxxxxxxxxxxxxxxxxxx
List-help: <mailto:xen-changelog-request@lists.xensource.com?subject=help>
List-id: BK change log <xen-changelog.lists.xensource.com>
List-post: <mailto:xen-changelog@lists.xensource.com>
List-subscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=subscribe>
List-unsubscribe: <http://lists.xensource.com/mailman/listinfo/xen-changelog>, <mailto:xen-changelog-request@lists.xensource.com?subject=unsubscribe>
Reply-to: xen-devel@xxxxxxxxxxxxxxxxxxx
Sender: xen-changelog-bounces@xxxxxxxxxxxxxxxxxxx
# HG changeset patch
# User Keir Fraser <keir.fraser@xxxxxxxxxx>
# Date 1245157455 -3600
# Node ID 2d68d518038b70bdb1cdb3eb078f1d394dd08437
# Parent  67a0ffade665e23c784613e7f34c6ac07867bb02
x86: Allow guests to allocate up to 2MB (superpage) memory extents.

Signed-off-by: Keir Fraser <keir.fraser@xxxxxxxxxxxxx>
---
 xen/common/memory.c          |   12 ++++++------
 xen/include/asm-ia64/iocap.h |    5 +++++
 xen/include/asm-x86/iocap.h  |    5 +++++
 xen/include/xen/iocap.h      |    4 ----
 4 files changed, 16 insertions(+), 10 deletions(-)

diff -r 67a0ffade665 -r 2d68d518038b xen/common/memory.c
--- a/xen/common/memory.c       Tue Jun 16 13:57:18 2009 +0100
+++ b/xen/common/memory.c       Tue Jun 16 14:04:15 2009 +0100
@@ -50,8 +50,7 @@ static void increase_reservation(struct 
                                      a->nr_extents-1) )
         return;
 
-    if ( (a->extent_order != 0) &&
-         !multipage_allocation_permitted(current->domain) )
+    if ( !multipage_allocation_permitted(current->domain, a->extent_order) )
         return;
 
     for ( i = a->nr_done; i < a->nr_extents; i++ )
@@ -96,8 +95,7 @@ static void populate_physmap(struct memo
                                      a->nr_extents-1) )
         return;
 
-    if ( (a->extent_order != 0) &&
-         !multipage_allocation_permitted(current->domain) )
+    if ( !multipage_allocation_permitted(current->domain, a->extent_order) )
         return;
 
     for ( i = a->nr_done; i < a->nr_extents; i++ )
@@ -247,8 +245,10 @@ static long memory_exchange(XEN_GUEST_HA
     }
 
     /* Only privileged guests can allocate multi-page contiguous extents. */
-    if ( ((exch.in.extent_order != 0) || (exch.out.extent_order != 0)) &&
-         !multipage_allocation_permitted(current->domain) )
+    if ( !multipage_allocation_permitted(current->domain,
+                                         exch.in.extent_order) ||
+         !multipage_allocation_permitted(current->domain,
+                                         exch.out.extent_order) )
     {
         rc = -EPERM;
         goto fail_early;
diff -r 67a0ffade665 -r 2d68d518038b xen/include/asm-ia64/iocap.h
--- a/xen/include/asm-ia64/iocap.h      Tue Jun 16 13:57:18 2009 +0100
+++ b/xen/include/asm-ia64/iocap.h      Tue Jun 16 14:04:15 2009 +0100
@@ -15,4 +15,9 @@ extern int ioports_deny_access(struct do
 #define ioports_access_permitted(d, s, e)               \
     rangeset_contains_range((d)->arch.ioport_caps, s, e)
 
+#define multipage_allocation_permitted(d, order)        \
+    (((order) == 0) ||                                  \
+     !rangeset_is_empty((d)->iomem_caps) ||             \
+     !rangeset_is_empty((d)->arch.ioport_caps))
+
 #endif /* __IA64_IOCAP_H__ */
diff -r 67a0ffade665 -r 2d68d518038b xen/include/asm-x86/iocap.h
--- a/xen/include/asm-x86/iocap.h       Tue Jun 16 13:57:18 2009 +0100
+++ b/xen/include/asm-x86/iocap.h       Tue Jun 16 14:04:15 2009 +0100
@@ -18,4 +18,9 @@
     (!rangeset_is_empty((d)->iomem_caps) ||             \
      !rangeset_is_empty((d)->arch.ioport_caps))
 
+#define multipage_allocation_permitted(d, order)        \
+    (((order) <= 9) || /* allow 2MB superpages */       \
+     !rangeset_is_empty((d)->iomem_caps) ||             \
+     !rangeset_is_empty((d)->arch.ioport_caps))
+
 #endif /* __X86_IOCAP_H__ */
diff -r 67a0ffade665 -r 2d68d518038b xen/include/xen/iocap.h
--- a/xen/include/xen/iocap.h   Tue Jun 16 13:57:18 2009 +0100
+++ b/xen/include/xen/iocap.h   Tue Jun 16 14:04:15 2009 +0100
@@ -28,8 +28,4 @@
 #define irq_access_permitted(d, i)                      \
     rangeset_contains_singleton((d)->irq_caps, i)
 
-#define multipage_allocation_permitted(d)               \
-    (!rangeset_is_empty((d)->iomem_caps) ||             \
-     !rangeset_is_empty((d)->arch.ioport_caps))
-
 #endif /* __XEN_IOCAP_H__ */

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

<Prev in Thread] Current Thread [Next in Thread>
  • [Xen-changelog] [xen-unstable] x86: Allow guests to allocate up to 2MB (superpage) memory extents., Xen patchbot-unstable <=