The commit is pushed to "branch-rh7-3.10.0-1160.76.1.vz7.189.x-ovz" and will appear at https://src.openvz.org/scm/ovz/vzkernel.git after rh7-3.10.0-1160.76.1.vz7.189.4 ------> commit 51139834e3af42ea942601edfe48ad4e8fa2e894 Author: Alexander Atanasov <alexander.atana...@virtuozzo.com> Date: Wed Oct 5 13:25:31 2022 +0300
drivers/hyperv: Balloon report stats to mm core Propagate balloon stats to mm core. Hyper-V balloon driver changes TOTAL RAM size reported by the guest, thus propagating the "InflatedTotal" counter to mm. https://jira.sw.ru/browse/PSBM-142436 Signed-off-by: Alexander Atanasov <alexander.atana...@virtuozzo.com> --- drivers/hv/hv_balloon.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c index 9bf30659a975..df3e41cb340a 100644 --- a/drivers/hv/hv_balloon.c +++ b/drivers/hv/hv_balloon.c @@ -32,6 +32,7 @@ #include <linux/memory.h> #include <linux/notifier.h> #include <linux/percpu_counter.h> +#include <linux/balloon_compaction.h> #include <linux/hyperv.h> #include <asm/mshyperv.h> @@ -1280,6 +1281,14 @@ static unsigned int alloc_balloon_pages(struct hv_dynmem_device *dm, return num_pages; } +static void report_ballooned_pages(struct hv_dynmem_device *dm) +{ + u32 actual = dm->num_pages_ballooned; + long inflated_kb = actual << (HV_HYP_PAGE_SHIFT - 10); + + balloon_set_inflated_total(inflated_kb); +} + static void balloon_up(struct work_struct *dummy) { unsigned int num_pages = dm_device.balloon_wrk.num_pages; @@ -1372,6 +1381,7 @@ static void balloon_up(struct work_struct *dummy) } } + report_ballooned_pages(&dm_device); } static void balloon_down(struct hv_dynmem_device *dm, @@ -1391,6 +1401,8 @@ static void balloon_down(struct hv_dynmem_device *dm, pr_debug("Freed %u ballooned pages.\n", prev_pages_ballooned - dm->num_pages_ballooned); + report_ballooned_pages(dm); + if (req->more_pages == 1) return; _______________________________________________ Devel mailing list Devel@openvz.org https://lists.openvz.org/mailman/listinfo/devel