Re: [PATCH] hv_balloon: Add module parameter to configure balloon floor value

From: Wei Liu
Date: Tue Oct 10 2023 - 19:16:53 EST


Hi Angelina,

On Tue, Oct 10, 2023 at 03:48:07PM -0700, Angelina Vu wrote:
> 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 <angelinavu@xxxxxxxxxxxxxxxxxxx>

Out of interest, will there be a case that the balloon floor value is
misconfigured, hence too small?

Why isn't the larger of the two values (computed and manually set)
returned instead?

Thanks,
Wei.

> ---
> 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
>
>