If Dynamic memory is disabled for VM, the committed value reported by the post_status() call by hv_balloon driver includes compute_balloon_floor(). This is not needed if balloon_up operations or hot_add operations were never requested on the VM(or if Dynamic memory was disabled for the VM) Signed-off-by: Shradha Gupta <shradhagupta@xxxxxxxxxxxxxxxxxxx> --- drivers/hv/hv_balloon.c | 22 +++++++++++++++++----- 1 file changed, 17 insertions(+), 5 deletions(-) diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c index fdf6decacf06..a6f5321d4a2e 100644 --- a/drivers/hv/hv_balloon.c +++ b/drivers/hv/hv_balloon.c @@ -1129,11 +1129,23 @@ static unsigned long compute_balloon_floor(void) static unsigned long get_pages_committed(struct hv_dynmem_device *dm) { - return vm_memory_committed() + - dm->num_pages_ballooned + - (dm->num_pages_added > dm->num_pages_onlined ? - dm->num_pages_added - dm->num_pages_onlined : 0) + - compute_balloon_floor(); + unsigned long pages_committed; + + pages_committed = vm_memory_committed(); + + /* + * If no balloon_up or hot_add operation was performed do not add + * num_pages_ballooned, number of pages offline or + * compute_balloon_floor() to the pages_committed value + */ + if (dm->num_pages_ballooned || dm->num_pages_added) { + pages_committed += dm->num_pages_ballooned + + (dm->num_pages_added > dm->num_pages_onlined ? + dm->num_pages_added - dm->num_pages_onlined : 0) + + compute_balloon_floor(); + } + + return pages_committed; } /* -- 2.37.2