Currently, the balloon floor value is automatically computed, but may be
too small depending on app usage of memory. This patch adds a balloon_floor
value as a module parameter that can be used to manually configure the
balloon floor value.

Signed-off-by: Angelina Vu <[email protected]>
---
 drivers/hv/hv_balloon.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/hv/hv_balloon.c b/drivers/hv/hv_balloon.c
index 64ac5bdee3a6..87b312f99b2e 100644
--- a/drivers/hv/hv_balloon.c
+++ b/drivers/hv/hv_balloon.c
@@ -1101,6 +1101,10 @@ static void process_info(struct hv_dynmem_device *dm, 
struct dm_info_msg *msg)
        }
 }
 
+unsigned long balloon_floor;
+module_param(balloon_floor, ulong, 0644);
+MODULE_PARM_DESC(balloon_floor, "Memory level (in megabytes) that ballooning 
will not remove");
+
 static unsigned long compute_balloon_floor(void)
 {
        unsigned long min_pages;
@@ -1117,6 +1121,9 @@ static unsigned long compute_balloon_floor(void)
         *    8192       744    (1/16)
         *   32768      1512    (1/32)
         */
+       if (balloon_floor)
+               return MB2PAGES(balloon_floor);
+
        if (nr_pages < MB2PAGES(128))
                min_pages = MB2PAGES(8) + (nr_pages >> 1);
        else if (nr_pages < MB2PAGES(512))
-- 
2.34.1


Reply via email to