[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [Xen-devel] [PATCH v3 3/3] xen: add CONFIG item for default dom0 memory size
With being able to specify a dom0_mem value depending on host memory size on x86 make it easy for distros to specify a default dom0 size by adding a CONFIG_DOM0_MEM item which presets the dom0_mem boot parameter value. It will be used only if no dom0_mem parameter was specified in the boot parameters. Signed-off-by: Juergen Gross <jgross@xxxxxxxx> Reviewed-by: Jan Beulich <jbeulich@xxxxxxxx> --- xen/arch/arm/domain_build.c | 7 +++++++ xen/arch/x86/dom0_build.c | 6 ++++++ xen/common/Kconfig | 13 +++++++++++++ 3 files changed, 26 insertions(+) diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c index b0ec3f0b72..d2c63a89ca 100644 --- a/xen/arch/arm/domain_build.c +++ b/xen/arch/arm/domain_build.c @@ -32,9 +32,12 @@ static unsigned int __initdata opt_dom0_max_vcpus; integer_param("dom0_max_vcpus", opt_dom0_max_vcpus); static u64 __initdata dom0_mem; +static bool __initdata dom0_mem_set; static int __init parse_dom0_mem(const char *s) { + dom0_mem_set = true; + dom0_mem = parse_size_and_unit(s, &s); return *s ? -EINVAL : 0; @@ -2114,6 +2117,10 @@ int __init construct_dom0(struct domain *d) BUG_ON(d->domain_id != 0); printk("*** LOADING DOMAIN 0 ***\n"); + + if ( !dom0_mem_set && CONFIG_DOM0_MEM[0] ) + parse_dom0_mem(CONFIG_DOM0_MEM); + if ( dom0_mem <= 0 ) { warning_add("PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW\n"); diff --git a/xen/arch/x86/dom0_build.c b/xen/arch/x86/dom0_build.c index 673b3ee4e6..54737daf6a 100644 --- a/xen/arch/x86/dom0_build.c +++ b/xen/arch/x86/dom0_build.c @@ -29,6 +29,7 @@ struct memsize { static struct memsize __initdata dom0_size; static struct memsize __initdata dom0_min_size; static struct memsize __initdata dom0_max_size = { .nr_pages = LONG_MAX }; +static bool __initdata dom0_mem_set; static bool __init memsize_gt_zero(const struct memsize *sz) { @@ -117,6 +118,8 @@ static int __init parse_dom0_mem(const char *s) { int ret; + dom0_mem_set = true; + /* xen-shim uses shim_mem parameter instead of dom0_mem */ if ( pv_shim ) { @@ -339,6 +342,9 @@ unsigned long __init dom0_compute_nr_pages( unsigned long avail = 0, nr_pages, min_pages, max_pages; bool need_paging; + if ( !dom0_mem_set && CONFIG_DOM0_MEM[0] ) + parse_dom0_mem(CONFIG_DOM0_MEM); + for_each_node_mask ( node, dom0_nodes ) avail += avail_domheap_pages_region(node, 0, 0) + initial_images_nrpages(node); diff --git a/xen/common/Kconfig b/xen/common/Kconfig index 68132a3a10..155a9a45e8 100644 --- a/xen/common/Kconfig +++ b/xen/common/Kconfig @@ -323,4 +323,17 @@ config CMDLINE_OVERRIDE This is used to work around broken bootloaders. This should be set to 'N' under normal conditions. + +config DOM0_MEM + string "Default value for dom0_mem boot parameter" + default "" + ---help--- + Sets a default value for dom0_mem, e.g. "512M". + The specified string will be used for the dom0_mem parameter in + case it was not specified on the command line. + + See docs/misc/xen-command-line.markdown for the supported syntax. + + Leave empty if you are not sure what to specify. + endmenu -- 2.16.4 _______________________________________________ Xen-devel mailing list Xen-devel@xxxxxxxxxxxxxxxxxxxx https://lists.xenproject.org/mailman/listinfo/xen-devel
|
Lists.xenproject.org is hosted with RackSpace, monitoring our |