[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Xen-devel] [PATCH] don't blindly use xmalloc() for allocating struct domain instances



At least on x86 these structures are greater than a page anyway, and
hence using xmalloc is wasteful here.

Signed-off-by: Jan Beulich <jbeulich@xxxxxxxxxx>

--- 2009-01-27.orig/xen/common/domain.c 2009-01-08 10:30:05.000000000 +0100
+++ 2009-01-27/xen/common/domain.c      2009-01-27 11:47:22.000000000 +0100
@@ -104,12 +104,17 @@ int current_domain_id(void)
 
 static struct domain *alloc_domain_struct(void)
 {
-    return xmalloc(struct domain);
+    if (sizeof(struct domain) < PAGE_SIZE)
+        return xmalloc(struct domain);
+    return alloc_xenheap_pages(get_order_from_bytes(sizeof(struct domain)));
 }
 
 static void free_domain_struct(struct domain *d)
 {
-    xfree(d);
+    if (sizeof(*d) < PAGE_SIZE)
+        xfree(d);
+    else
+        free_xenheap_pages(d, get_order_from_bytes(sizeof(*d)));
 }
 
 static void __domain_finalise_shutdown(struct domain *d)




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


 


Rackspace

Lists.xenproject.org is hosted with RackSpace, monitoring our
servers 24x7x365 and backed by RackSpace's Fanatical Support®.