mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 10:40:03 +01:00
xl: move freemem()'s "credit expired" loop exit
Move the "credit expired" loop exit to the middle of the loop,
immediately after "return true". This way having reached the goal on the
last iteration would be reported as success to the caller, rather than
as "timed out".
Signed-off-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
master commit: d8f8cb8bdd
master date: 2022-07-18 17:48:18 +0200
This commit is contained in:
1 parent
6e542a835d
commit
bfbcae445c
1 file changed
+5
-4
@@ -332,7 +332,7 @@ static bool freemem(uint32_t domid, libxl_domain_config *d_config)
|
||||
if (rc < 0)
|
||||
return false;
|
||||
|
||||
do {
|
||||
for (;;) {
|
||||
time_t start;
|
||||
|
||||
rc = libxl_get_free_memory(ctx, &free_memkb);
|
||||
@@ -342,6 +342,9 @@ static bool freemem(uint32_t domid, libxl_domain_config *d_config)
|
||||
if (free_memkb >= need_memkb)
|
||||
return true;
|
||||
|
||||
if (credit <= 0)
|
||||
return false;
|
||||
|
||||
rc = libxl_set_memory_target(ctx, 0, free_memkb - need_memkb, 1, 0);
|
||||
if (rc < 0)
|
||||
return false;
|
||||
@@ -354,9 +357,7 @@ static bool freemem(uint32_t domid, libxl_domain_config *d_config)
|
||||
return false;
|
||||
|
||||
credit -= difftime(time(NULL), start);
|
||||
} while (credit > 0);
|
||||
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
static void reload_domain_config(uint32_t domid,
|
||||
|
||||