mirror of
https://github.com/xen-project/xen.git
synced 2026-10-28 02:01:24 +01:00
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@suse.com> Reviewed-by: Jan Beulich <jbeulich@suse.com> Acked-by: Julien Grall <julien.grall@arm.com>
This commit is contained in:
1 parent
d48ef111c7
commit
d2d71a5471
3 files changed
+26
No files matched your search
@@ -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");
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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
|
||||