summaryrefslogtreecommitdiff
path: root/drivers
diff options
context:
space:
mode:
authorK. Y. Srinivasan <kys@microsoft.com>2013-01-26 04:18:47 +0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-01-30 09:06:07 +0400
commit0731572b6c529f8e8a320dc4df6d67d9a595ecf3 (patch)
treec331d4381a5439424f84992e2489c45340459f3c /drivers
parent06a8f1feb9e82e5b66f781ba3e39055e3f89a641 (diff)
downloadlinux-0731572b6c529f8e8a320dc4df6d67d9a595ecf3.tar.xz
Drivers: hv: balloon: Make adjustments to the pressure report
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>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/hv/hv_balloon.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
index ce6f984535ec..32a96f164dc8 100644
--- a/drivers/hv/hv_balloon.c
+++ b/drivers/hv/hv_balloon.c
@@ -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),