* [PATCH] xen/arm: warn if dom0_mem is not specified
@ 2017-02-20 18:22 Stefano Stabellini
2017-02-21 9:57 ` Wei Liu
0 siblings, 1 reply; 5+ messages in thread
From: Stefano Stabellini @ 2017-02-20 18:22 UTC (permalink / raw)
To: julien.grall; +Cc: xen-devel, sstabellini
The default dom0_mem is 128M which is not sufficient to boot a Ubuntu
based Dom0. It is not clear what a better default value could be.
Instead, loudly warn the user when dom0_mem is unspecified and wait 3
secs. Then use 512M.
Update the docs to specify that dom0_mem is required on ARM. (The
current xen-command-line document does not actually reflect the current
behavior of dom0_mem on ARM correctly.)
Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
---
Changes in v3:
- update docs
---
docs/misc/xen-command-line.markdown | 8 +++++++-
xen/arch/arm/domain_build.c | 22 +++++++++++++++++-----
2 files changed, 24 insertions(+), 6 deletions(-)
diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown
index a11fdf9..c0106fb 100644
--- a/docs/misc/xen-command-line.markdown
+++ b/docs/misc/xen-command-line.markdown
@@ -603,7 +603,13 @@ For example, with `dom0_max_vcpus=4-8`:
> 8 | 8
> 10 | 8
-### dom0\_mem
+### dom0\_mem (ARM)
+> `= <size>`
+
+Set the amount of memory for the initial domain (dom0). It must be
+greater than zero. This parameter is required.
+
+### dom0\_mem (x86)
> `= List of ( min:<size> | max:<size> | <size> )`
Set the amount of memory for the initial domain (dom0). If a size is
diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index c97a1f5..db7471f 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -1,4 +1,5 @@
#include <xen/config.h>
+#include <xen/delay.h>
#include <xen/init.h>
#include <xen/compile.h>
#include <xen/lib.h>
@@ -31,14 +32,11 @@ integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
int dom0_11_mapping = 1;
-#define DOM0_MEM_DEFAULT 0x8000000 /* 128 MiB */
-static u64 __initdata dom0_mem = DOM0_MEM_DEFAULT;
+static u64 __initdata dom0_mem;
static void __init parse_dom0_mem(const char *s)
{
dom0_mem = parse_size_and_unit(s, &s);
- if ( dom0_mem == 0 )
- dom0_mem = DOM0_MEM_DEFAULT;
}
custom_param("dom0_mem", parse_dom0_mem);
@@ -2125,7 +2123,21 @@ int construct_dom0(struct domain *d)
BUG_ON(d->vcpu[0] == NULL);
BUG_ON(v->is_initialised);
- printk("*** LOADING DOMAIN 0 ***\n");
+ if ( dom0_mem > 0 )
+ printk("*** LOADING DOMAIN 0 ***\n");
+ else
+ {
+ int i;
+ printk("*** PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW ***\n");
+ for (i = 0; i < 3; i++)
+ {
+ printk("%d...", i+1);
+ mdelay(1000);
+ }
+ printk("\n");
+ dom0_mem = MB(512);
+ }
+
iommu_hwdom_init(d);
--
1.9.1
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH] xen/arm: warn if dom0_mem is not specified
2017-02-20 18:22 [PATCH] xen/arm: warn if dom0_mem is not specified Stefano Stabellini
@ 2017-02-21 9:57 ` Wei Liu
2017-02-21 17:26 ` Stefano Stabellini
0 siblings, 1 reply; 5+ messages in thread
From: Wei Liu @ 2017-02-21 9:57 UTC (permalink / raw)
To: Stefano Stabellini; +Cc: xen-devel, julien.grall, Wei Liu
On Mon, Feb 20, 2017 at 10:22:06AM -0800, Stefano Stabellini wrote:
> The default dom0_mem is 128M which is not sufficient to boot a Ubuntu
> based Dom0. It is not clear what a better default value could be.
>
> Instead, loudly warn the user when dom0_mem is unspecified and wait 3
> secs. Then use 512M.
>
> Update the docs to specify that dom0_mem is required on ARM. (The
> current xen-command-line document does not actually reflect the current
> behavior of dom0_mem on ARM correctly.)
>
> Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
> ---
> Changes in v3:
> - update docs
> ---
> docs/misc/xen-command-line.markdown | 8 +++++++-
> xen/arch/arm/domain_build.c | 22 +++++++++++++++++-----
> 2 files changed, 24 insertions(+), 6 deletions(-)
>
> diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown
> index a11fdf9..c0106fb 100644
> --- a/docs/misc/xen-command-line.markdown
> +++ b/docs/misc/xen-command-line.markdown
> @@ -603,7 +603,13 @@ For example, with `dom0_max_vcpus=4-8`:
> > 8 | 8
> > 10 | 8
>
> -### dom0\_mem
> +### dom0\_mem (ARM)
> +> `= <size>`
> +
> +Set the amount of memory for the initial domain (dom0). It must be
> +greater than zero. This parameter is required.
> +
> +### dom0\_mem (x86)
> > `= List of ( min:<size> | max:<size> | <size> )`
>
> Set the amount of memory for the initial domain (dom0). If a size is
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index c97a1f5..db7471f 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -1,4 +1,5 @@
> #include <xen/config.h>
> +#include <xen/delay.h>
> #include <xen/init.h>
> #include <xen/compile.h>
> #include <xen/lib.h>
> @@ -31,14 +32,11 @@ integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
>
> int dom0_11_mapping = 1;
>
> -#define DOM0_MEM_DEFAULT 0x8000000 /* 128 MiB */
> -static u64 __initdata dom0_mem = DOM0_MEM_DEFAULT;
> +static u64 __initdata dom0_mem;
>
> static void __init parse_dom0_mem(const char *s)
> {
> dom0_mem = parse_size_and_unit(s, &s);
> - if ( dom0_mem == 0 )
> - dom0_mem = DOM0_MEM_DEFAULT;
> }
> custom_param("dom0_mem", parse_dom0_mem);
>
> @@ -2125,7 +2123,21 @@ int construct_dom0(struct domain *d)
> BUG_ON(d->vcpu[0] == NULL);
> BUG_ON(v->is_initialised);
>
> - printk("*** LOADING DOMAIN 0 ***\n");
> + if ( dom0_mem > 0 )
> + printk("*** LOADING DOMAIN 0 ***\n");
> + else
> + {
> + int i;
> + printk("*** PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW ***\n");
> + for (i = 0; i < 3; i++)
> + {
> + printk("%d...", i+1);
> + mdelay(1000);
There is infrastructure in Xen to print warning messages, so that we
don't add delays unnecessarily.
See warning.h:warning_add.
Wei.
> + }
> + printk("\n");
> + dom0_mem = MB(512);
> + }
> +
>
> iommu_hwdom_init(d);
>
> --
> 1.9.1
>
>
> _______________________________________________
> Xen-devel mailing list
> Xen-devel@lists.xen.org
> https://lists.xen.org/xen-devel
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] xen/arm: warn if dom0_mem is not specified
2017-02-21 9:57 ` Wei Liu
@ 2017-02-21 17:26 ` Stefano Stabellini
2017-02-21 17:31 ` Julien Grall
0 siblings, 1 reply; 5+ messages in thread
From: Stefano Stabellini @ 2017-02-21 17:26 UTC (permalink / raw)
To: Wei Liu; +Cc: xen-devel, julien.grall, Stefano Stabellini
On Tue, 21 Feb 2017, Wei Liu wrote:
> On Mon, Feb 20, 2017 at 10:22:06AM -0800, Stefano Stabellini wrote:
> > The default dom0_mem is 128M which is not sufficient to boot a Ubuntu
> > based Dom0. It is not clear what a better default value could be.
> >
> > Instead, loudly warn the user when dom0_mem is unspecified and wait 3
> > secs. Then use 512M.
> >
> > Update the docs to specify that dom0_mem is required on ARM. (The
> > current xen-command-line document does not actually reflect the current
> > behavior of dom0_mem on ARM correctly.)
> >
> > Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
> > ---
> > Changes in v3:
> > - update docs
> > ---
> > docs/misc/xen-command-line.markdown | 8 +++++++-
> > xen/arch/arm/domain_build.c | 22 +++++++++++++++++-----
> > 2 files changed, 24 insertions(+), 6 deletions(-)
> >
> > diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown
> > index a11fdf9..c0106fb 100644
> > --- a/docs/misc/xen-command-line.markdown
> > +++ b/docs/misc/xen-command-line.markdown
> > @@ -603,7 +603,13 @@ For example, with `dom0_max_vcpus=4-8`:
> > > 8 | 8
> > > 10 | 8
> >
> > -### dom0\_mem
> > +### dom0\_mem (ARM)
> > +> `= <size>`
> > +
> > +Set the amount of memory for the initial domain (dom0). It must be
> > +greater than zero. This parameter is required.
> > +
> > +### dom0\_mem (x86)
> > > `= List of ( min:<size> | max:<size> | <size> )`
> >
> > Set the amount of memory for the initial domain (dom0). If a size is
> > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > index c97a1f5..db7471f 100644
> > --- a/xen/arch/arm/domain_build.c
> > +++ b/xen/arch/arm/domain_build.c
> > @@ -1,4 +1,5 @@
> > #include <xen/config.h>
> > +#include <xen/delay.h>
> > #include <xen/init.h>
> > #include <xen/compile.h>
> > #include <xen/lib.h>
> > @@ -31,14 +32,11 @@ integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
> >
> > int dom0_11_mapping = 1;
> >
> > -#define DOM0_MEM_DEFAULT 0x8000000 /* 128 MiB */
> > -static u64 __initdata dom0_mem = DOM0_MEM_DEFAULT;
> > +static u64 __initdata dom0_mem;
> >
> > static void __init parse_dom0_mem(const char *s)
> > {
> > dom0_mem = parse_size_and_unit(s, &s);
> > - if ( dom0_mem == 0 )
> > - dom0_mem = DOM0_MEM_DEFAULT;
> > }
> > custom_param("dom0_mem", parse_dom0_mem);
> >
> > @@ -2125,7 +2123,21 @@ int construct_dom0(struct domain *d)
> > BUG_ON(d->vcpu[0] == NULL);
> > BUG_ON(v->is_initialised);
> >
> > - printk("*** LOADING DOMAIN 0 ***\n");
> > + if ( dom0_mem > 0 )
> > + printk("*** LOADING DOMAIN 0 ***\n");
> > + else
> > + {
> > + int i;
> > + printk("*** PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW ***\n");
> > + for (i = 0; i < 3; i++)
> > + {
> > + printk("%d...", i+1);
> > + mdelay(1000);
>
> There is infrastructure in Xen to print warning messages, so that we
> don't add delays unnecessarily.
>
> See warning.h:warning_add.
I added the delay on purpose to force the user to specify dom0_mem, as
we cannot find a way to set a sensible default. The alternative is to
panic.
> > + }
> > + printk("\n");
> > + dom0_mem = MB(512);
> > + }
> > +
> >
> > iommu_hwdom_init(d);
> >
> > --
> > 1.9.1
> >
> >
> > _______________________________________________
> > Xen-devel mailing list
> > Xen-devel@lists.xen.org
> > https://lists.xen.org/xen-devel
>
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] xen/arm: warn if dom0_mem is not specified
2017-02-21 17:26 ` Stefano Stabellini
@ 2017-02-21 17:31 ` Julien Grall
2017-02-27 23:10 ` Stefano Stabellini
0 siblings, 1 reply; 5+ messages in thread
From: Julien Grall @ 2017-02-21 17:31 UTC (permalink / raw)
To: Stefano Stabellini, Wei Liu; +Cc: xen-devel, nd
Hi Stefano,
On 21/02/17 17:26, Stefano Stabellini wrote:
> On Tue, 21 Feb 2017, Wei Liu wrote:
>> On Mon, Feb 20, 2017 at 10:22:06AM -0800, Stefano Stabellini wrote:
>>> The default dom0_mem is 128M which is not sufficient to boot a Ubuntu
>>> based Dom0. It is not clear what a better default value could be.
>>>
>>> Instead, loudly warn the user when dom0_mem is unspecified and wait 3
>>> secs. Then use 512M.
>>>
>>> Update the docs to specify that dom0_mem is required on ARM. (The
>>> current xen-command-line document does not actually reflect the current
>>> behavior of dom0_mem on ARM correctly.)
>>>
>>> Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
>>> ---
>>> Changes in v3:
>>> - update docs
>>> ---
>>> docs/misc/xen-command-line.markdown | 8 +++++++-
>>> xen/arch/arm/domain_build.c | 22 +++++++++++++++++-----
>>> 2 files changed, 24 insertions(+), 6 deletions(-)
>>>
>>> diff --git a/docs/misc/xen-command-line.markdown b/docs/misc/xen-command-line.markdown
>>> index a11fdf9..c0106fb 100644
>>> --- a/docs/misc/xen-command-line.markdown
>>> +++ b/docs/misc/xen-command-line.markdown
>>> @@ -603,7 +603,13 @@ For example, with `dom0_max_vcpus=4-8`:
>>> > 8 | 8
>>> > 10 | 8
>>>
>>> -### dom0\_mem
>>> +### dom0\_mem (ARM)
>>> +> `= <size>`
>>> +
>>> +Set the amount of memory for the initial domain (dom0). It must be
>>> +greater than zero. This parameter is required.
>>> +
>>> +### dom0\_mem (x86)
>>> > `= List of ( min:<size> | max:<size> | <size> )`
>>>
>>> Set the amount of memory for the initial domain (dom0). If a size is
>>> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
>>> index c97a1f5..db7471f 100644
>>> --- a/xen/arch/arm/domain_build.c
>>> +++ b/xen/arch/arm/domain_build.c
>>> @@ -1,4 +1,5 @@
>>> #include <xen/config.h>
>>> +#include <xen/delay.h>
>>> #include <xen/init.h>
>>> #include <xen/compile.h>
>>> #include <xen/lib.h>
>>> @@ -31,14 +32,11 @@ integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
>>>
>>> int dom0_11_mapping = 1;
>>>
>>> -#define DOM0_MEM_DEFAULT 0x8000000 /* 128 MiB */
>>> -static u64 __initdata dom0_mem = DOM0_MEM_DEFAULT;
>>> +static u64 __initdata dom0_mem;
>>>
>>> static void __init parse_dom0_mem(const char *s)
>>> {
>>> dom0_mem = parse_size_and_unit(s, &s);
>>> - if ( dom0_mem == 0 )
>>> - dom0_mem = DOM0_MEM_DEFAULT;
>>> }
>>> custom_param("dom0_mem", parse_dom0_mem);
>>>
>>> @@ -2125,7 +2123,21 @@ int construct_dom0(struct domain *d)
>>> BUG_ON(d->vcpu[0] == NULL);
>>> BUG_ON(v->is_initialised);
>>>
>>> - printk("*** LOADING DOMAIN 0 ***\n");
>>> + if ( dom0_mem > 0 )
>>> + printk("*** LOADING DOMAIN 0 ***\n");
>>> + else
>>> + {
>>> + int i;
>>> + printk("*** PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR NOW ***\n");
>>> + for (i = 0; i < 3; i++)
>>> + {
>>> + printk("%d...", i+1);
>>> + mdelay(1000);
>>
>> There is infrastructure in Xen to print warning messages, so that we
>> don't add delays unnecessarily.
>>
>> See warning.h:warning_add.
>
> I added the delay on purpose to force the user to specify dom0_mem, as
> we cannot find a way to set a sensible default. The alternative is to
> panic.
warning_add will gather the warning message and then will be printed at
the end of the boot with a delay. This is what is used for sync_console
message and also FEP on x86.
I think this is a good idea to gather all the warnings and print them at
the end. At least it is not lost in the noise.
Cheers,
--
Julien Grall
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH] xen/arm: warn if dom0_mem is not specified
2017-02-21 17:31 ` Julien Grall
@ 2017-02-27 23:10 ` Stefano Stabellini
0 siblings, 0 replies; 5+ messages in thread
From: Stefano Stabellini @ 2017-02-27 23:10 UTC (permalink / raw)
To: Julien Grall; +Cc: xen-devel, nd, Stefano Stabellini, Wei Liu
On Tue, 21 Feb 2017, Julien Grall wrote:
> Hi Stefano,
>
> On 21/02/17 17:26, Stefano Stabellini wrote:
> > On Tue, 21 Feb 2017, Wei Liu wrote:
> > > On Mon, Feb 20, 2017 at 10:22:06AM -0800, Stefano Stabellini wrote:
> > > > The default dom0_mem is 128M which is not sufficient to boot a Ubuntu
> > > > based Dom0. It is not clear what a better default value could be.
> > > >
> > > > Instead, loudly warn the user when dom0_mem is unspecified and wait 3
> > > > secs. Then use 512M.
> > > >
> > > > Update the docs to specify that dom0_mem is required on ARM. (The
> > > > current xen-command-line document does not actually reflect the current
> > > > behavior of dom0_mem on ARM correctly.)
> > > >
> > > > Signed-off-by: Stefano Stabellini <sstabellini@kernel.org>
> > > > ---
> > > > Changes in v3:
> > > > - update docs
> > > > ---
> > > > docs/misc/xen-command-line.markdown | 8 +++++++-
> > > > xen/arch/arm/domain_build.c | 22 +++++++++++++++++-----
> > > > 2 files changed, 24 insertions(+), 6 deletions(-)
> > > >
> > > > diff --git a/docs/misc/xen-command-line.markdown
> > > > b/docs/misc/xen-command-line.markdown
> > > > index a11fdf9..c0106fb 100644
> > > > --- a/docs/misc/xen-command-line.markdown
> > > > +++ b/docs/misc/xen-command-line.markdown
> > > > @@ -603,7 +603,13 @@ For example, with `dom0_max_vcpus=4-8`:
> > > > > 8 | 8
> > > > > 10 | 8
> > > >
> > > > -### dom0\_mem
> > > > +### dom0\_mem (ARM)
> > > > +> `= <size>`
> > > > +
> > > > +Set the amount of memory for the initial domain (dom0). It must be
> > > > +greater than zero. This parameter is required.
> > > > +
> > > > +### dom0\_mem (x86)
> > > > > `= List of ( min:<size> | max:<size> | <size> )`
> > > >
> > > > Set the amount of memory for the initial domain (dom0). If a size is
> > > > diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> > > > index c97a1f5..db7471f 100644
> > > > --- a/xen/arch/arm/domain_build.c
> > > > +++ b/xen/arch/arm/domain_build.c
> > > > @@ -1,4 +1,5 @@
> > > > #include <xen/config.h>
> > > > +#include <xen/delay.h>
> > > > #include <xen/init.h>
> > > > #include <xen/compile.h>
> > > > #include <xen/lib.h>
> > > > @@ -31,14 +32,11 @@ integer_param("dom0_max_vcpus", opt_dom0_max_vcpus);
> > > >
> > > > int dom0_11_mapping = 1;
> > > >
> > > > -#define DOM0_MEM_DEFAULT 0x8000000 /* 128 MiB */
> > > > -static u64 __initdata dom0_mem = DOM0_MEM_DEFAULT;
> > > > +static u64 __initdata dom0_mem;
> > > >
> > > > static void __init parse_dom0_mem(const char *s)
> > > > {
> > > > dom0_mem = parse_size_and_unit(s, &s);
> > > > - if ( dom0_mem == 0 )
> > > > - dom0_mem = DOM0_MEM_DEFAULT;
> > > > }
> > > > custom_param("dom0_mem", parse_dom0_mem);
> > > >
> > > > @@ -2125,7 +2123,21 @@ int construct_dom0(struct domain *d)
> > > > BUG_ON(d->vcpu[0] == NULL);
> > > > BUG_ON(v->is_initialised);
> > > >
> > > > - printk("*** LOADING DOMAIN 0 ***\n");
> > > > + if ( dom0_mem > 0 )
> > > > + printk("*** LOADING DOMAIN 0 ***\n");
> > > > + else
> > > > + {
> > > > + int i;
> > > > + printk("*** PLEASE SPECIFY dom0_mem PARAMETER - USING 512M FOR
> > > > NOW ***\n");
> > > > + for (i = 0; i < 3; i++)
> > > > + {
> > > > + printk("%d...", i+1);
> > > > + mdelay(1000);
> > >
> > > There is infrastructure in Xen to print warning messages, so that we
> > > don't add delays unnecessarily.
> > >
> > > See warning.h:warning_add.
> >
> > I added the delay on purpose to force the user to specify dom0_mem, as
> > we cannot find a way to set a sensible default. The alternative is to
> > panic.
>
> warning_add will gather the warning message and then will be printed at the
> end of the boot with a delay. This is what is used for sync_console message
> and also FEP on x86.
>
> I think this is a good idea to gather all the warnings and print them at the
> end. At least it is not lost in the noise.
Yes, warning_add works very well actually. I'll use it.
_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xen.org
https://lists.xen.org/xen-devel
^ permalink raw reply [flat|nested] 5+ messages in thread
end of thread, other threads:[~2017-02-27 23:10 UTC | newest]
Thread overview: 5+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-02-20 18:22 [PATCH] xen/arm: warn if dom0_mem is not specified Stefano Stabellini
2017-02-21 9:57 ` Wei Liu
2017-02-21 17:26 ` Stefano Stabellini
2017-02-21 17:31 ` Julien Grall
2017-02-27 23:10 ` Stefano Stabellini
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.