WARNING - OLD ARCHIVES

This is an archived copy of the Xen.org mailing list, which we have preserved to ensure that existing links to archives are not broken. The live archive, which contains the latest emails, can be found at http://lists.xen.org/
   
 
 
Xen 
 
Home Products Support Community News
 
   
 

xen-ia64-devel

[Xen-devel] Re: [PATCH] kexec/kdump: statically allocate xen_phys_cpus

You posted to xen-ia64-devel & xen-ia64 (deleted the wrong word?)
rather than xen-devel so I added that to the CC.

On Thu, 2007-09-20 at 13:38 +0900, Simon Horman wrote:
> On IA64 alloc_bootmem_low() can't be called this early.
> 
> Before alloc_bootmem_low() can be called init_bootmem(), which is called in
> find_memory(). However xen_machine_kexec_setup_resources() is indirectly
> called earlier on in find_memory().

Can the root cause not be fixed i.e. allow the call to
alloc_bootmem_low() earlier or move the call to
xen_machine_kexec_setup_resource() later, rather than papering over it
by making a potentially large static array?

Ian.

> 
> Cc: Ian Campbell <ian.campbell@xxxxxxxxxxxxx>
> Signed-off-by: Simon Horman <horms@xxxxxxxxxxxx>
> 
> ---
> Date: Thu, 20 Sep 2007 13:37:10 +0900
> From: Simon Horman <horms@xxxxxxxxxxxx>
> 
> Posted to xen-devel as it changes common code.
> As suggested by Alex Williamson.
> 
> Index: x/drivers/xen/core/machine_kexec.c
> ===================================================================
> --- x/drivers/xen/core/machine_kexec.c        2007-05-11 18:19:20.000000000 
> +0900
> +++ x/drivers/xen/core/machine_kexec.c        2007-05-14 19:18:03.000000000 
> +0900
> @@ -13,7 +13,7 @@ extern void machine_kexec_setup_load_arg
>  
>  static int __initdata xen_max_nr_phys_cpus;
>  static struct resource xen_hypervisor_res;
> -static struct resource *xen_phys_cpus;
> +static struct resource xen_phys_cpus[NR_CPUS];
>  
>  void __init xen_machine_kexec_setup_resources(void)
>  {
> @@ -42,11 +42,6 @@ void xen_machine_kexec_setup_resources(v
>  
>       xen_max_nr_phys_cpus = k;
>  
> -     /* allocate xen_phys_cpus */
> -
> -     xen_phys_cpus = alloc_bootmem_low(k * sizeof(struct resource));
> -     BUG_ON(xen_phys_cpus == NULL);
> -
>       /* fill in xen_phys_cpus with per-cpu crash note information */
>  
>       for (k = 0; k < xen_max_nr_phys_cpus; k++) {


_______________________________________________
Xen-devel mailing list
Xen-devel@xxxxxxxxxxxxxxxxxxx
http://lists.xensource.com/xen-devel