[Xen-devel] [PATCH] xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks

Julien Grall posted 1 patch 4 years, 7 months ago
Patches applied successfully (tree, apply log)
git fetch https://github.com/patchew-project/xen tags/patchew/20190821221221.19456-1-julien.grall@arm.com
xen/arch/arm/domain_build.c | 7 +++----
1 file changed, 3 insertions(+), 4 deletions(-)
[Xen-devel] [PATCH] xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
Posted by Julien Grall 4 years, 7 months ago
Xen will only print a warning if there are memory unallocated when using
1:1 mapping (only used by dom0). This also includes the case where no
memory has been allocated.

It will bring to all sort of issues that can be hard to diagnostic for
users (the warning can be difficult to spot or disregard).

If the users request 1GB of memory, then most likely they want the exact
amount and not 512MB. So panic if all the memory has not been allocated.

After this change, the behavior is the same as for non-1:1 memory
allocation (used by domU).

At the same time, reflow the message to have the format on a single
line.

Signed-off-by: Julien Grall <julien.grall@arm.com>

---

Cc: Bertrand.Marquis@arm.com

It took me sometimes this morning to spot the warning in the log. If we
don't honor the size, it feels it is better to crash and request the
user to request less memory (or re-order the binary).

This is inline on how domU memory allocation is handled.
---
 xen/arch/arm/domain_build.c | 7 +++----
 1 file changed, 3 insertions(+), 4 deletions(-)

diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
index 1a3dcb1bcd..72e14746cd 100644
--- a/xen/arch/arm/domain_build.c
+++ b/xen/arch/arm/domain_build.c
@@ -358,10 +358,9 @@ static void __init allocate_memory_11(struct domain *d,
     }
 
     if ( kinfo->unassigned_mem )
-        printk("WARNING: Failed to allocate requested dom0 memory."
-               /* Don't want format this as PRIpaddr (16 digit hex) */
-               " %ldMB unallocated\n",
-               (unsigned long)kinfo->unassigned_mem >> 20);
+        /* Don't want format this as PRIpaddr (16 digit hex) */
+        panic("Failed to allocate requested dom0 memory. %ldMB unallocated\n",
+              (unsigned long)kinfo->unassigned_mem >> 20);
 
     for( i = 0; i < kinfo->mem.nr_banks; i++ )
     {
-- 
2.11.0


_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel
Re: [Xen-devel] [PATCH] xen/arm: domain_build: Don't continue if unable to allocate all dom0 banks
Posted by Stefano Stabellini 4 years, 5 months ago
On Wed, 21 Aug 2019, Julien Grall wrote:
> Xen will only print a warning if there are memory unallocated when using
                                         ^ is


> 1:1 mapping (only used by dom0). This also includes the case where no
> memory has been allocated.
> 
> It will bring to all sort of issues that can be hard to diagnostic for
> users (the warning can be difficult to spot or disregard).
                                                 ^ disregarded

 
> If the users request 1GB of memory, then most likely they want the exact
> amount and not 512MB. So panic if all the memory has not been allocated.
> 
> After this change, the behavior is the same as for non-1:1 memory
> allocation (used by domU).
> 
> At the same time, reflow the message to have the format on a single
> line.
> 
> Signed-off-by: Julien Grall <julien.grall@arm.com>

Acked-by: Stefano Stabellini <sstabellini@kernel.org>


> ---
> 
> Cc: Bertrand.Marquis@arm.com
> 
> It took me sometimes this morning to spot the warning in the log. If we
> don't honor the size, it feels it is better to crash and request the
> user to request less memory (or re-order the binary).
> 
> This is inline on how domU memory allocation is handled.
> ---
>  xen/arch/arm/domain_build.c | 7 +++----
>  1 file changed, 3 insertions(+), 4 deletions(-)
> 
> diff --git a/xen/arch/arm/domain_build.c b/xen/arch/arm/domain_build.c
> index 1a3dcb1bcd..72e14746cd 100644
> --- a/xen/arch/arm/domain_build.c
> +++ b/xen/arch/arm/domain_build.c
> @@ -358,10 +358,9 @@ static void __init allocate_memory_11(struct domain *d,
>      }
>  
>      if ( kinfo->unassigned_mem )
> -        printk("WARNING: Failed to allocate requested dom0 memory."
> -               /* Don't want format this as PRIpaddr (16 digit hex) */
> -               " %ldMB unallocated\n",
> -               (unsigned long)kinfo->unassigned_mem >> 20);
> +        /* Don't want format this as PRIpaddr (16 digit hex) */
> +        panic("Failed to allocate requested dom0 memory. %ldMB unallocated\n",
> +              (unsigned long)kinfo->unassigned_mem >> 20);
>  
>      for( i = 0; i < kinfo->mem.nr_banks; i++ )
>      {
> -- 
> 2.11.0
> 

_______________________________________________
Xen-devel mailing list
Xen-devel@lists.xenproject.org
https://lists.xenproject.org/mailman/listinfo/xen-devel