Skip to content

Commit

Permalink
Drivers: hv: balloon: Add a parameter to delay pressure reporting
Browse files Browse the repository at this point in the history
Delay reporting memory pressure by a specified amount of time.
This addresses the problem where the host may take memory balancing
decisions based on incorrect memory pressure data that will be posted
as soon as the balloon driver is loaded.

Signed-off-by: K. Y. Srinivasan <kys@microsoft.com>
Reviewed-by: Haiyang Zhang <haiyangz@microsoft.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  • Loading branch information
K. Y. Srinivasan authored and Greg Kroah-Hartman committed Feb 8, 2013
1 parent e1e0a9e commit e500d15
Showing 1 changed file with 11 additions and 2 deletions.
13 changes: 11 additions & 2 deletions drivers/hv/hv_balloon.c
Original file line number Diff line number Diff line change
Expand Up @@ -414,10 +414,17 @@ struct dm_info_msg {

static bool hot_add;
static bool do_hot_add;
/*
* Delay reporting memory pressure by
* the specified number of seconds.
*/
static uint pressure_report_delay = 30;

module_param(hot_add, bool, (S_IRUGO | S_IWUSR));
MODULE_PARM_DESC(hot_add, "If set attempt memory hot_add");

module_param(pressure_report_delay, uint, (S_IRUGO | S_IWUSR));
MODULE_PARM_DESC(pressure_report_delay, "Delay in secs in reporting pressure");
static atomic_t trans_id = ATOMIC_INIT(0);

static int dm_ring_size = (5 * PAGE_SIZE);
Expand Down Expand Up @@ -531,6 +538,10 @@ static void post_status(struct hv_dynmem_device *dm)
struct dm_status status;
struct sysinfo val;

if (pressure_report_delay > 0) {
--pressure_report_delay;
return;
}
si_meminfo(&val);
memset(&status, 0, sizeof(struct dm_status));
status.hdr.type = DM_STATUS_REPORT;
Expand All @@ -552,8 +563,6 @@ static void post_status(struct hv_dynmem_device *dm)

}



static void free_balloon_pages(struct hv_dynmem_device *dm,
union dm_mem_page_range *range_array)
{
Expand Down

0 comments on commit e500d15

Please sign in to comment.