[Top][All Lists]

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

[Qemu-devel] Re: virtio: Add memory statistics reporting to the balloon

From: Anthony Liguori
Subject: [Qemu-devel] Re: virtio: Add memory statistics reporting to the balloon driver
Date: Thu, 05 Nov 2009 17:39:09 -0600
User-agent: Thunderbird (X11/20090825)

address@hidden wrote:
Here are the corresponding changes to the Linux virtio driver...

    virtio: Add memory statistics reporting to the balloon driver
When using ballooning to manage overcommitted memory on a host, a system for
    guests to communicate their memory usage to the host can provide information
    that will minimize the impact of ballooning on the guests.  The current 
    employs a daemon running in each guest that communicates memory statistics 
to a
    host daemon at a specified time interval.  The host daemon aggregates this
    information and inflates and/or deflates balloons according to the level of
    host memory pressure.  This approach is effective but overly complex since a
    daemon must be installed inside each guest and coordinated to communicate 
    the host.  A simpler approach is to collect memory statistics in the virtio
    balloon driver and communicate them to the host via the device config space.
This patch enables the guest-side support by adding stats collection and
    reporting to the virtio balloon driver.
Signed-off-by: Adam Litke <address@hidden>

diff --git a/drivers/virtio/virtio.c b/drivers/virtio/virtio.c
index 3a43ebf..1029363 100644
--- a/drivers/virtio/virtio.c
+++ b/drivers/virtio/virtio.c
@@ -135,6 +135,7 @@ static int virtio_dev_probe(struct device *_d)
                        set_bit(i, dev->features);

+       printk("virtio_dev_probe: final features = %lx\n", dev->features[0]);

Looks like leftover debugging.

        err = drv->probe(dev);
        if (err)
diff --git a/drivers/virtio/virtio_balloon.c b/drivers/virtio/virtio_balloon.c
index 200c22f..77cb953 100644
--- a/drivers/virtio/virtio_balloon.c
+++ b/drivers/virtio/virtio_balloon.c
@@ -180,6 +180,45 @@ static void update_balloon_size(struct virtio_balloon *vb)
                              &actual, sizeof(actual));

+static inline void update_stat(struct virtio_device *vdev, int feature,
+                               unsigned long value, unsigned offset)
+       if (virtio_has_feature(vdev, feature)) {
+               vdev->config->set(vdev, offset, &value, sizeof(value));

I think this bit assumes a little endian guest. We shouldn't make that assumption.

For virtio kernel patches, please CC the virtualization list and Rusty as he's the maintainer. It wouldn't hurt to CC lkml either.


Anthony Liguori

reply via email to

[Prev in Thread] Current Thread [Next in Thread]