[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-Id: <1367235468-8360-2-git-send-email-daniel.kiper@oracle.com>
Date: Mon, 29 Apr 2013 13:37:47 +0200
From: Daniel Kiper <daniel.kiper@...cle.com>
To: carsten@...iers.de, darren.s.shepherd@...il.com,
david.vrabel@...rix.com, ian.campbell@...rix.com,
ian.jackson@...citrix.com, james-xen@...gwall.me.uk,
konrad.wilk@...cle.com, linux-kernel@...r.kernel.org,
xen-devel@...ts.xensource.com
Cc: Daniel Kiper <daniel.kiper@...cle.com>
Subject: [PATCH v2 1/2] xen/balloon: Notify a host about a guest memory size limit
Notify a host about a guest memory size limit.
Idea of this patch was discussed with Ian Campbell and Ian Jackson.
Signed-off-by: Daniel Kiper <daniel.kiper@...cle.com>
---
drivers/xen/balloon.c | 25 +++++++++++++++++++++++++
1 file changed, 25 insertions(+)
diff --git a/drivers/xen/balloon.c b/drivers/xen/balloon.c
index a56776d..856661f 100644
--- a/drivers/xen/balloon.c
+++ b/drivers/xen/balloon.c
@@ -65,6 +65,7 @@
#include <xen/balloon.h>
#include <xen/features.h>
#include <xen/page.h>
+#include <xen/xenbus.h>
/*
* balloon_process() state:
@@ -586,6 +587,9 @@ static void __init balloon_add_region(unsigned long start_pfn,
static int __init balloon_init(void)
{
int i;
+#ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
+ int rc;
+#endif
if (!xen_domain())
return -ENODEV;
@@ -621,6 +625,27 @@ static int __init balloon_init(void)
balloon_add_region(PFN_UP(xen_extra_mem[i].start),
PFN_DOWN(xen_extra_mem[i].size));
+#ifdef CONFIG_XEN_BALLOON_MEMORY_HOTPLUG
+ /*
+ * Notify a host about our memory size limit.
+ *
+ * The guest-max value is in KiB, so MAX_DOMAIN_PAGES should
+ * be converted respectively. PAGE_SHIFT converts pages to bytes,
+ * hence PAGE_SHIFT - 10.
+ */
+ rc = xenbus_printf(XBT_NIL, "memory", "guest-max", "%lu",
+ MAX_DOMAIN_PAGES << (PAGE_SHIFT - 10));
+
+ if (rc < 0)
+ pr_info("xen/balloon: Memory hotplug may not be supported "
+ "in some environments: %i\n", rc);
+#else
+ xenbus_printf(XBT_NIL, "memory", "guest-max", "%lu",
+ (balloon_stats.current_pages +
+ balloon_stats.balloon_low +
+ balloon_stats.balloon_high) << (PAGE_SHIFT - 10));
+#endif
+
return 0;
}
--
1.7.10.4
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Powered by blists - more mailing lists