qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
* [Qemu-devel] [5873] Add ballooning infrastructure.
@ 2008-12-04 20:19 Anthony Liguori
  2008-12-04 20:25 ` Blue Swirl
  0 siblings, 1 reply; 3+ messages in thread
From: Anthony Liguori @ 2008-12-04 20:19 UTC (permalink / raw)
  To: qemu-devel

Revision: 5873
          http://svn.sv.gnu.org/viewvc/?view=rev&root=qemu&revision=5873
Author:   aliguori
Date:     2008-12-04 20:19:35 +0000 (Thu, 04 Dec 2008)

Log Message:
-----------
Add ballooning infrastructure.

Balloon devices allow you to ask the guest to allocate memory.  This allows you
to release that memory.  It's mostly useful for freeing up large chunks of
memory from cooperative guests.

Ballooning is supported by both Xen and VirtIO.

Signed-off-by: Anthony Liguori <aliguori@us.ibm.com>

Modified Paths:
--------------
    trunk/monitor.c
    trunk/vl.c

Modified: trunk/monitor.c
===================================================================
--- trunk/monitor.c	2008-12-04 20:08:06 UTC (rev 5872)
+++ trunk/monitor.c	2008-12-04 20:19:35 UTC (rev 5873)
@@ -34,6 +34,7 @@
 #include "block.h"
 #include "audio/audio.h"
 #include "disas.h"
+#include "balloon.h"
 #include <dirent.h>
 #include "qemu-timer.h"
 #include "migration.h"
@@ -1390,6 +1391,23 @@
 }
 #endif
 
+static void do_balloon(int value)
+{
+    ram_addr_t target = value;
+    qemu_balloon(target << 20);
+}
+
+static void do_info_balloon(void)
+{
+    ram_addr_t actual;
+
+    actual = qemu_balloon_status();
+    if (actual == 0)
+        term_printf("Ballooning not activated in VM\n");
+    else
+        term_printf("balloon: actual=%d\n", (int)(actual >> 20));
+}
+
 static const term_cmd_t term_cmds[] = {
     { "help|?", "s?", do_help,
       "[cmd]", "show the help" },
@@ -1475,6 +1493,8 @@
       "", "cancel the current VM migration" },
     { "migrate_set_speed", "s", do_migrate_set_speed,
       "value", "set maximum speed (in bytes) for migrations" },
+    { "balloon", "i", do_balloon,
+      "target", "request VM to change it's memory allocation (in MB)" },
     { NULL, NULL, },
 };
 
@@ -1542,6 +1562,8 @@
       "", "show SLIRP statistics", },
 #endif
     { "migrate", "", do_info_migrate, "", "show migration status" },
+    { "balloon", "", do_info_balloon,
+      "", "show balloon information" },
     { NULL, NULL, },
 };
 

Modified: trunk/vl.c
===================================================================
--- trunk/vl.c	2008-12-04 20:08:06 UTC (rev 5872)
+++ trunk/vl.c	2008-12-04 20:19:35 UTC (rev 5873)
@@ -40,6 +40,7 @@
 #include "audio/audio.h"
 #include "migration.h"
 #include "kvm.h"
+#include "balloon.h"
 
 #include <unistd.h>
 #include <fcntl.h>
@@ -514,7 +515,32 @@
     va_end(ap);
     abort();
 }
+ 
+/***************/
+/* ballooning */
 
+static QEMUBalloonEvent *qemu_balloon_event;
+void *qemu_balloon_event_opaque;
+
+void qemu_add_balloon_handler(QEMUBalloonEvent *func, void *opaque)
+{
+    qemu_balloon_event = func;
+    qemu_balloon_event_opaque = opaque;
+}
+
+void qemu_balloon(ram_addr_t target)
+{
+    if (qemu_balloon_event)
+        qemu_balloon_event(qemu_balloon_event_opaque, target);
+}
+
+ram_addr_t qemu_balloon_status(void)
+{
+    if (qemu_balloon_event)
+        return qemu_balloon_event(qemu_balloon_event_opaque, 0);
+    return 0;
+}
+
 /***********************************************************/
 /* keyboard/mouse */
 

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [5873] Add ballooning infrastructure.
  2008-12-04 20:19 [Qemu-devel] [5873] Add ballooning infrastructure Anthony Liguori
@ 2008-12-04 20:25 ` Blue Swirl
  2008-12-04 20:35   ` Anthony Liguori
  0 siblings, 1 reply; 3+ messages in thread
From: Blue Swirl @ 2008-12-04 20:25 UTC (permalink / raw)
  To: qemu-devel, Anthony Liguori

On 12/4/08, Anthony Liguori <anthony@codemonkey.ws> wrote:
> Revision: 5873

>  Modified Paths:
>  --------------
>     trunk/monitor.c
>     trunk/vl.c

>  --- trunk/monitor.c     2008-12-04 20:08:06 UTC (rev 5872)
>  +++ trunk/monitor.c     2008-12-04 20:19:35 UTC (rev 5873)

>  +#include "balloon.h"

Forgot something?

^ permalink raw reply	[flat|nested] 3+ messages in thread

* Re: [Qemu-devel] [5873] Add ballooning infrastructure.
  2008-12-04 20:25 ` Blue Swirl
@ 2008-12-04 20:35   ` Anthony Liguori
  0 siblings, 0 replies; 3+ messages in thread
From: Anthony Liguori @ 2008-12-04 20:35 UTC (permalink / raw)
  To: Blue Swirl; +Cc: qemu-devel

Blue Swirl wrote:
> On 12/4/08, Anthony Liguori <anthony@codemonkey.ws> wrote:
>   
>
>>  +#include "balloon.h"
>>     
>
> Forgot something?
>   

Yes, sorry about that!

I need to start doing svn status before doing svn ci.

Regards,

Anthony Liguori

^ permalink raw reply	[flat|nested] 3+ messages in thread

end of thread, other threads:[~2008-12-04 20:35 UTC | newest]

Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-12-04 20:19 [Qemu-devel] [5873] Add ballooning infrastructure Anthony Liguori
2008-12-04 20:25 ` Blue Swirl
2008-12-04 20:35   ` Anthony Liguori

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).