diff mbox

[RFC,v1,19/21] ARM: NUMA: Initialize ACPI NUMA

Message ID 1486655834-9708-20-git-send-email-vijay.kilari@gmail.com (mailing list archive)
State New, archived
Headers show

Commit Message

Vijay Kilari Feb. 9, 2017, 3:57 p.m. UTC
From: Vijaya Kumar K <Vijaya.Kumar@cavium.com>

Call ACPI NUMA initialization under CONFIG_ACPI_NUMA.

Signed-off-by: Vijaya Kumar <Vijaya.Kumar@cavium.com>
---
 xen/arch/arm/numa.c | 12 +++++++++++-
 xen/common/numa.c   |  6 ++++++
 2 files changed, 17 insertions(+), 1 deletion(-)

Comments

Julien Grall March 2, 2017, 5:25 p.m. UTC | #1
Hello Vijay,

On 09/02/17 15:57, vijay.kilari@gmail.com wrote:
> From: Vijaya Kumar K <Vijaya.Kumar@cavium.com>
>
> Call ACPI NUMA initialization under CONFIG_ACPI_NUMA.
>
> Signed-off-by: Vijaya Kumar <Vijaya.Kumar@cavium.com>
> ---
>  xen/arch/arm/numa.c | 12 +++++++++++-
>  xen/common/numa.c   |  6 ++++++
>  2 files changed, 17 insertions(+), 1 deletion(-)
>
> diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
> index 50c3dea..1d6e16c 100644
> --- a/xen/arch/arm/numa.c
> +++ b/xen/arch/arm/numa.c
> @@ -204,7 +204,17 @@ int __init numa_init(void)
>      for ( i = 0; i < MAX_NUMNODES * 2; i++ )
>          _node_distance[i] = 0;
>
> -    ret = dt_numa_init();
> +#ifdef CONFIG_ACPI_NUMA
> +    if ( !acpi_disabled )
> +    {
> +        acpi_map_uid_to_mpidr();
> +        ret = acpi_numa_init();
> +        if ( ret || srat_disabled() )
> +            goto no_numa;
> +    }
> +    else
> +#endif

We should really have only on call to ACPI in the generic code. Please 
move all of this in a function.

> +        ret = dt_numa_init();
>
>      if ( !ret )
>          ret = numa_initmem_init();
> diff --git a/xen/common/numa.c b/xen/common/numa.c
> index 2f5266a..4c67d38 100644
> --- a/xen/common/numa.c
> +++ b/xen/common/numa.c
> @@ -30,6 +30,7 @@
>  #include <xen/sched.h>
>  #include <xen/errno.h>
>  #include <xen/softirq.h>
> +#include <xen/srat.h>
>  #include <asm/setup.h>
>
>  static int numa_setup(char *s);
> @@ -282,6 +283,11 @@ static __init int numa_setup(char *opt)
>          numa_off = 1;
>      if ( !strncmp(opt,"on",2) )
>          numa_off = 0;
> +    if ( !strncmp(opt,"noacpi",6) )
> +    {
> +        numa_off = 0;
> +        acpi_numa = -1;
> +    }
>
>      return arch_numa_setup(opt);
>  }
>
Vijay Kilari March 3, 2017, 12:44 p.m. UTC | #2
On Thu, Mar 2, 2017 at 10:55 PM, Julien Grall <julien.grall@arm.com> wrote:
> Hello Vijay,
>
>
> On 09/02/17 15:57, vijay.kilari@gmail.com wrote:
>>
>> From: Vijaya Kumar K <Vijaya.Kumar@cavium.com>
>>
>> Call ACPI NUMA initialization under CONFIG_ACPI_NUMA.
>>
>> Signed-off-by: Vijaya Kumar <Vijaya.Kumar@cavium.com>
>> ---
>>  xen/arch/arm/numa.c | 12 +++++++++++-
>>  xen/common/numa.c   |  6 ++++++
>>  2 files changed, 17 insertions(+), 1 deletion(-)
>>
>> diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
>> index 50c3dea..1d6e16c 100644
>> --- a/xen/arch/arm/numa.c
>> +++ b/xen/arch/arm/numa.c
>> @@ -204,7 +204,17 @@ int __init numa_init(void)
>>      for ( i = 0; i < MAX_NUMNODES * 2; i++ )
>>          _node_distance[i] = 0;
>>
>> -    ret = dt_numa_init();
>> +#ifdef CONFIG_ACPI_NUMA
>> +    if ( !acpi_disabled )
>> +    {
>> +        acpi_map_uid_to_mpidr();
>> +        ret = acpi_numa_init();
>> +        if ( ret || srat_disabled() )
>> +            goto no_numa;
>> +    }
>> +    else
>> +#endif
>
>
> We should really have only on call to ACPI in the generic code. Please move
> all of this in a function.
OK
>
>
>> +        ret = dt_numa_init();
>>
>>      if ( !ret )
>>          ret = numa_initmem_init();
>> diff --git a/xen/common/numa.c b/xen/common/numa.c
>> index 2f5266a..4c67d38 100644
>> --- a/xen/common/numa.c
>> +++ b/xen/common/numa.c
>> @@ -30,6 +30,7 @@
>>  #include <xen/sched.h>
>>  #include <xen/errno.h>
>>  #include <xen/softirq.h>
>> +#include <xen/srat.h>
>>  #include <asm/setup.h>
>>
>>  static int numa_setup(char *s);
>> @@ -282,6 +283,11 @@ static __init int numa_setup(char *opt)
>>          numa_off = 1;
>>      if ( !strncmp(opt,"on",2) )
>>          numa_off = 0;
>> +    if ( !strncmp(opt,"noacpi",6) )
>> +    {
>> +        numa_off = 0;
>> +        acpi_numa = -1;
>> +    }
>>
>>      return arch_numa_setup(opt);
>>  }
>>
>
> --
> Julien Grall
diff mbox

Patch

diff --git a/xen/arch/arm/numa.c b/xen/arch/arm/numa.c
index 50c3dea..1d6e16c 100644
--- a/xen/arch/arm/numa.c
+++ b/xen/arch/arm/numa.c
@@ -204,7 +204,17 @@  int __init numa_init(void)
     for ( i = 0; i < MAX_NUMNODES * 2; i++ )
         _node_distance[i] = 0;
 
-    ret = dt_numa_init();
+#ifdef CONFIG_ACPI_NUMA
+    if ( !acpi_disabled )
+    {
+        acpi_map_uid_to_mpidr();
+        ret = acpi_numa_init();
+        if ( ret || srat_disabled() )
+            goto no_numa;
+    }
+    else
+#endif
+        ret = dt_numa_init();
 
     if ( !ret )
         ret = numa_initmem_init();
diff --git a/xen/common/numa.c b/xen/common/numa.c
index 2f5266a..4c67d38 100644
--- a/xen/common/numa.c
+++ b/xen/common/numa.c
@@ -30,6 +30,7 @@ 
 #include <xen/sched.h>
 #include <xen/errno.h>
 #include <xen/softirq.h>
+#include <xen/srat.h>
 #include <asm/setup.h>
 
 static int numa_setup(char *s);
@@ -282,6 +283,11 @@  static __init int numa_setup(char *opt)
         numa_off = 1;
     if ( !strncmp(opt,"on",2) )
         numa_off = 0;
+    if ( !strncmp(opt,"noacpi",6) )
+    {
+        numa_off = 0;
+        acpi_numa = -1;
+    }
 
     return arch_numa_setup(opt);
 }