[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 2/3] xl: Allow user to configure xl mem-set behavior
Add mem_set_enforce_limit option to xl.conf file and equivalent xl command line option. Those two things give a chance to align xl mem-set behavior to xm mem-set behavior. Default xl mem-set behavior is not changed. v3 - suggestions/fixes: - add xl command line option (suggested by Ian Jackson). Signed-off-by: Daniel Kiper <daniel.kiper@xxxxxxxxxx> --- tools/libxl/xl.c | 4 ++++ tools/libxl/xl.h | 1 + tools/libxl/xl_cmdimpl.c | 16 ++++++++++------ tools/libxl/xl_cmdtable.c | 3 ++- 4 files changed, 17 insertions(+), 7 deletions(-) diff --git a/tools/libxl/xl.c b/tools/libxl/xl.c index 4c598db..5c445ca 100644 --- a/tools/libxl/xl.c +++ b/tools/libxl/xl.c @@ -38,6 +38,7 @@ xentoollog_logger_stdiostream *logger; int dryrun_only; int force_execution; int autoballoon = 1; +int mem_set_enforce_limit = 1; char *blkdev_start; int run_hotplug_scripts = 1; char *lockfile; @@ -72,6 +73,9 @@ static void parse_global_config(const char *configfile, if (!xlu_cfg_get_long (config, "autoballoon", &l, 0)) autoballoon = l; + if (!xlu_cfg_get_long (config, "mem_set_enforce_limit", &l, 0)) + mem_set_enforce_limit = l; + if (!xlu_cfg_get_long (config, "run_hotplug_scripts", &l, 0)) run_hotplug_scripts = l; diff --git a/tools/libxl/xl.h b/tools/libxl/xl.h index b881f92..321a0d0 100644 --- a/tools/libxl/xl.h +++ b/tools/libxl/xl.h @@ -143,6 +143,7 @@ int xl_child_pid(xlchildnum); /* returns 0 if child struct is not in use */ /* global options */ extern int autoballoon; +extern int mem_set_enforce_limit; extern int run_hotplug_scripts; extern int dryrun_only; extern char *lockfile; diff --git a/tools/libxl/xl_cmdimpl.c b/tools/libxl/xl_cmdimpl.c index 2d40f8f..a0ff3e5 100644 --- a/tools/libxl/xl_cmdimpl.c +++ b/tools/libxl/xl_cmdimpl.c @@ -2495,7 +2495,7 @@ int main_memmax(int argc, char **argv) return 0; } -static void set_memory_target(uint32_t domid, const char *mem) +static void set_memory_target(uint32_t domid, const char *mem, int enforce_limit) { long long int memorykb; @@ -2505,23 +2505,27 @@ static void set_memory_target(uint32_t domid, const char *mem) exit(3); } - libxl_set_memory_target(ctx, domid, memorykb, 0, /* enforce */ 1); + libxl_set_memory_target(ctx, domid, memorykb, 0, enforce_limit); } int main_memset(int argc, char **argv) { uint32_t domid; - int opt = 0; + int enforce_limit, opt = 0; const char *mem; - SWITCH_FOREACH_OPT(opt, "", NULL, "mem-set", 2) { - /* No options */ + enforce_limit = mem_set_enforce_limit; + + SWITCH_FOREACH_OPT(opt, "e:", NULL, "mem-set", 2) { + case 'e': + enforce_limit = atoi(optarg) ? 1 : 0; + break; } domid = find_domain(argv[optind]); mem = argv[optind + 1]; - set_memory_target(domid, mem); + set_memory_target(domid, mem, enforce_limit); return 0; } diff --git a/tools/libxl/xl_cmdtable.c b/tools/libxl/xl_cmdtable.c index b4a87ca..5cfdb70 100644 --- a/tools/libxl/xl_cmdtable.c +++ b/tools/libxl/xl_cmdtable.c @@ -195,7 +195,8 @@ struct cmd_spec cmd_table[] = { { "mem-set", &main_memset, 0, 1, "Set the current memory usage for a domain", - "<Domain> <MemMB['b'[bytes]|'k'[KB]|'m'[MB]|'g'[GB]|'t'[TB]]>", + "[-e <0|1>] <Domain> <MemMB['b'[bytes]|'k'[KB]|'m'[MB]|'g'[GB]|'t'[TB]]>", + "-e <0|1> (Not)Enforce maximum memory allocation for a domain" }, { "button-press", &main_button_press, 0, 1, -- 1.7.10.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxx http://lists.xen.org/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |