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

[Xen-devel] [PATCH 3/7] libxenlight meta-resend: physmap slack for pv domains



Contemplate a memory space slack for PV domains,
since they do ballooning (or flipping network rx)
and need some extra room in their pfn space.

Note that this does not allocate any extra memory
to the domain, it simply extends the physmap with
some extra room for "bounce bufffering back" pfn's
that are yielded to dom0.

The default slack is set at 8MB.

Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>

# HG changeset patch
# User Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>
# Date 1259856754 18000
# Node ID 7315ca037a680d18a6c23d030139b5389a73000b
# Parent  e64cd1042530990b49647d6eeb1c4167f02d4f19
Contemplate a memory space slack for PV domains,
since they do ballooning (or flipping network rx)
and need some extra room in their pfn space.

Note that this does not allocate any extra memory
to the domain, it simply extends the physmap with
some extra room for "bounce bufffering back" pfn's
that are yielded to dom0.

The default slack is set at 8MB.

Signed-off-by: Andres Lagar-Cavilla <andres@xxxxxxxxxxxxxxxx>

diff -r e64cd1042530 -r 7315ca037a68 libxl.c
--- a/libxl.c
+++ b/libxl.c
@@ -2034,6 +2034,8 @@ void init_build_info(libxl_domain_build_
         b_info->u.hvm.acpi = 1;
         b_info->u.hvm.nx = 1;
         b_info->u.hvm.viridian = 0;
+    } else {
+        b_info->u.pv.slack_memkb = 8 * 1024;
     }
 }
 
diff -r e64cd1042530 -r 7315ca037a68 libxl.h
--- a/libxl.h
+++ b/libxl.h
@@ -80,6 +80,7 @@ typedef struct {
             char *timeoffset;
         } hvm;
         struct {
+            uint32_t   slack_memkb;
             const char *cmdline;
             const char *ramdisk;
             const char *features;
diff -r e64cd1042530 -r 7315ca037a68 libxl_dom.c
--- a/libxl_dom.c
+++ b/libxl_dom.c
@@ -53,7 +53,9 @@ int build_pre(struct libxl_ctx *ctx, uin
         xc_set_hvm_param(ctx->xch, domid, HVM_PARAM_VPT_ALIGN, (unsigned long) 
info->vpt_align);
     xc_domain_max_vcpus(ctx->xch, domid, info->max_vcpus);
     xc_domain_setmaxmem(ctx->xch, domid, info->max_memkb + info->video_memkb);
-    xc_domain_set_memmap_limit(ctx->xch, domid, info->max_memkb);
+    xc_domain_set_memmap_limit(ctx->xch, domid, 
+            (info->hvm) ? info->max_memkb : 
+            (info->max_memkb + info->u.pv.slack_memkb));
 
     if (info->hvm) {
         unsigned long shadow;
_______________________________________________
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®.