mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 10:11:27 +01:00
tools/xl: fix autoballoon regex
This regex is used for auto-balloon mode detection based on Xen command line.
The case of specifying a negative size was handled incorrectly.
>From misc/xen-command-line documentation:
dom0_mem (x86)
= List of ( min:<sz> | max:<sz> | <sz> )
If a size is positive, it represents an absolute value.
If a size is negative, it is subtracted from the total available memory.
Also add support for [tT] granularity suffix.
Also add support for memory fractions (i.e. '50%' or '1G+25%').
Signed-off-by: Dmitry Isaykin <isaikin-dmitry@yandex.ru>
Reviewed-by: Anthony PERARD <anthony.perard@citrix.com>
This commit is contained in:
1 parent
d3b05f9b16
commit
2faeb4213d
1 file changed
+7
-1
+7
-1
@@ -80,14 +80,20 @@ static int auto_autoballoon(void)
|
||||
if (!info)
|
||||
return 1; /* default to on */
|
||||
|
||||
#define SIZE_PATTERN "-?[0-9]+[bBkKmMgGtT]?"
|
||||
|
||||
ret = regcomp(®ex,
|
||||
"(^| )dom0_mem=((|min:|max:)[0-9]+[bBkKmMgG]?,?)+($| )",
|
||||
"(^| )dom0_mem=((|min:|max:)(" SIZE_PATTERN "|(" SIZE_PATTERN "\\+)?[0-9]{1,2}%),?)+($| )",
|
||||
REG_NOSUB | REG_EXTENDED);
|
||||
|
||||
#undef SIZE_PATTERN
|
||||
|
||||
if (ret)
|
||||
return 1;
|
||||
|
||||
ret = regexec(®ex, info->commandline, 0, NULL, 0);
|
||||
regfree(®ex);
|
||||
|
||||
return ret == REG_NOMATCH;
|
||||
}
|
||||
|
||||
|
||||