Drivers: hv: balloon: Make adjustments to the pressure report
authorK. Y. Srinivasan <kys@microsoft.com>
Sat, 26 Jan 2013 00:18:47 +0000 (16:18 -0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 30 Jan 2013 05:06:07 +0000 (00:06 -0500)
The host expects that the pressure report includes the pressure due to the
pages that have been ballooned. Make necessary adjustments to reflect that.
Also, include the free memory information in the pressure report.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/hv/hv_balloon.c

index ce6f984535ecb8f8aff0024b4874813182e0f550..32a96f164dc8d41615759bdeb95e61af5069a6ad 100644 (file)
@@ -529,15 +529,21 @@ static void process_info(struct hv_dynmem_device *dm, struct dm_info_msg *msg)
 static void post_status(struct hv_dynmem_device *dm)
 {
        struct dm_status status;
+       struct sysinfo val;
 
-
+       si_meminfo(&val);
        memset(&status, 0, sizeof(struct dm_status));
        status.hdr.type = DM_STATUS_REPORT;
        status.hdr.size = sizeof(struct dm_status);
        status.hdr.trans_id = atomic_inc_return(&trans_id);
 
-
-       status.num_committed = vm_memory_committed();
+       /*
+        * The host expects the guest to report free memory.
+        * Further, the host expects the pressure information to
+        * include the ballooned out pages.
+        */
+       status.num_avail = val.freeram;
+       status.num_committed = vm_memory_committed() + dm->num_pages_ballooned;
 
        vmbus_sendpacket(dm->dev->channel, &status,
                                sizeof(struct dm_status),