[dpdk-dev] Fwd: [PATCH] PPC: Fix NUMA node numbering on IBM POWER8 LE machine

Message ID 55F7CCE9.8060807@linux.vnet.ibm.com (mailing list archive)
State Not Applicable, archived
Headers

Commit Message

Chao Zhu Sept. 15, 2015, 7:46 a.m. UTC
  Any response of this patch?

-------- Forwarded Message --------
Subject: 	[dpdk-dev] [PATCH] PPC: Fix NUMA node numbering on IBM POWER8 
LE machine
Date: 	Fri, 14 Aug 2015 20:19:48 +0800
From: 	Chao Zhu <chaozhu@linux.vnet.ibm.com>
To: 	dev@dpdk.org



When Linux is running on bare metal, it gets the raw hardware
information. On POWER8 little endian bare metal machine, the node number
is not continuous. It will jump from 0 to other values, for example, it
can be 0, 1, 16, 17. This patch modified the CONFIG_RTE_MAX_NUMA_NODES
value to make dpdk work on POWER8 bare metal little endian machine.

Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
---
  config/common_linuxapp |    2 +-
  1 files changed, 1 insertions(+), 1 deletions(-)
  

Comments

Bruce Richardson Sept. 15, 2015, 9:01 a.m. UTC | #1
On Tue, Sep 15, 2015 at 03:46:49PM +0800, Chao Zhu wrote:
> 
> Any response of this patch?

Looks ok to me - pretty trivial change.

/Bruce
> 
> -------- Forwarded Message --------
> Subject: 	[dpdk-dev] [PATCH] PPC: Fix NUMA node numbering on IBM POWER8 LE
> machine
> Date: 	Fri, 14 Aug 2015 20:19:48 +0800
> From: 	Chao Zhu <chaozhu@linux.vnet.ibm.com>
> To: 	dev@dpdk.org
> 
> 
> 
> When Linux is running on bare metal, it gets the raw hardware
> information. On POWER8 little endian bare metal machine, the node number
> is not continuous. It will jump from 0 to other values, for example, it
> can be 0, 1, 16, 17. This patch modified the CONFIG_RTE_MAX_NUMA_NODES
> value to make dpdk work on POWER8 bare metal little endian machine.
> 
> Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
> ---
>  config/common_linuxapp |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
> 
> diff --git a/config/common_linuxapp b/config/common_linuxapp
> index 0de43d5..82a027e 100644
> --- a/config/common_linuxapp
> +++ b/config/common_linuxapp
> @@ -98,7 +98,7 @@ CONFIG_RTE_NEXT_ABI=y
>  #
>  CONFIG_RTE_LIBRTE_EAL=y
>  CONFIG_RTE_MAX_LCORE=128
> -CONFIG_RTE_MAX_NUMA_NODES=8
> +CONFIG_RTE_MAX_NUMA_NODES=32
>  CONFIG_RTE_MAX_MEMSEG=256
>  CONFIG_RTE_MAX_MEMZONE=2560
>  CONFIG_RTE_MAX_TAILQ=32
> -- 
> 1.7.1
> 
> 
>
  
Chao Zhu Sept. 16, 2015, 2:02 a.m. UTC | #2
Actually, without this change, DPDK can't work properly on PPC64 little 
endian platform. It'll report "EAL: Not enough memory available! 
Requested: xxxMB, available: xxxMB" such kind of error. But for users, 
they don't know that changing the value of CONFIG_RTE_MAX_NUMA_NODES can 
fix this.  That why I invoke this patch.

On 2015/9/15 17:01, Bruce Richardson wrote:
> On Tue, Sep 15, 2015 at 03:46:49PM +0800, Chao Zhu wrote:
>> Any response of this patch?
> Looks ok to me - pretty trivial change.
>
> /Bruce
>> -------- Forwarded Message --------
>> Subject: 	[dpdk-dev] [PATCH] PPC: Fix NUMA node numbering on IBM POWER8 LE
>> machine
>> Date: 	Fri, 14 Aug 2015 20:19:48 +0800
>> From: 	Chao Zhu <chaozhu@linux.vnet.ibm.com>
>> To: 	dev@dpdk.org
>>
>>
>>
>> When Linux is running on bare metal, it gets the raw hardware
>> information. On POWER8 little endian bare metal machine, the node number
>> is not continuous. It will jump from 0 to other values, for example, it
>> can be 0, 1, 16, 17. This patch modified the CONFIG_RTE_MAX_NUMA_NODES
>> value to make dpdk work on POWER8 bare metal little endian machine.
>>
>> Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
>> ---
>>   config/common_linuxapp |    2 +-
>>   1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/config/common_linuxapp b/config/common_linuxapp
>> index 0de43d5..82a027e 100644
>> --- a/config/common_linuxapp
>> +++ b/config/common_linuxapp
>> @@ -98,7 +98,7 @@ CONFIG_RTE_NEXT_ABI=y
>>   #
>>   CONFIG_RTE_LIBRTE_EAL=y
>>   CONFIG_RTE_MAX_LCORE=128
>> -CONFIG_RTE_MAX_NUMA_NODES=8
>> +CONFIG_RTE_MAX_NUMA_NODES=32
>>   CONFIG_RTE_MAX_MEMSEG=256
>>   CONFIG_RTE_MAX_MEMZONE=2560
>>   CONFIG_RTE_MAX_TAILQ=32
>> -- 
>> 1.7.1
>>
>>
>>
  
David Marchand Sept. 16, 2015, 8:09 a.m. UTC | #3
Hello Chao,

On Wed, Sep 16, 2015 at 4:02 AM, Chao Zhu <chaozhu@linux.vnet.ibm.com>
wrote:

> Actually, without this change, DPDK can't work properly on PPC64 little
> endian platform. It'll report "EAL: Not enough memory available! Requested:
> xxxMB, available: xxxMB" such kind of error. But for users, they don't know
> that changing the value of CONFIG_RTE_MAX_NUMA_NODES can fix this.  That
> why I invoke this patch.


Sorry, I forgot to reply in this thread.

Well, to me, this is a workaround.
Yes it will work, but what happens if tomorrow we have some hardware that
tells us that it has some numa node which 60000 index ?

I think we need a rework in eal to proerly handle this, like I said in this
mail :
http://dpdk.org/ml/archives/dev/2015-September/023630.html

Do you think you can look into this ?


Thanks.
  
Chao Zhu Sept. 17, 2015, 8:56 a.m. UTC | #4
David,

Let me take a look.

On 2015/9/16 16:09, David Marchand wrote:
> Hello Chao,
>
> On Wed, Sep 16, 2015 at 4:02 AM, Chao Zhu <chaozhu@linux.vnet.ibm.com 
> <mailto:chaozhu@linux.vnet.ibm.com>> wrote:
>
>     Actually, without this change, DPDK can't work properly on PPC64
>     little endian platform. It'll report "EAL: Not enough memory
>     available! Requested: xxxMB, available: xxxMB" such kind of error.
>     But for users, they don't know that changing the value of
>     CONFIG_RTE_MAX_NUMA_NODES can fix this.  That why I invoke this patch.
>
>
> Sorry, I forgot to reply in this thread.
>
> Well, to me, this is a workaround.
> Yes it will work, but what happens if tomorrow we have some hardware 
> that tells us that it has some numa node which 60000 index ?
>
> I think we need a rework in eal to proerly handle this, like I said in 
> this mail :
> http://dpdk.org/ml/archives/dev/2015-September/023630.html
>
> Do you think you can look into this ?
>
>
> Thanks.
>
> -- 
> David Marchand
  

Patch

diff --git a/config/common_linuxapp b/config/common_linuxapp
index 0de43d5..82a027e 100644
--- a/config/common_linuxapp
+++ b/config/common_linuxapp
@@ -98,7 +98,7 @@  CONFIG_RTE_NEXT_ABI=y
  #
  CONFIG_RTE_LIBRTE_EAL=y
  CONFIG_RTE_MAX_LCORE=128
-CONFIG_RTE_MAX_NUMA_NODES=8
+CONFIG_RTE_MAX_NUMA_NODES=32
  CONFIG_RTE_MAX_MEMSEG=256
  CONFIG_RTE_MAX_MEMZONE=2560
  CONFIG_RTE_MAX_TAILQ=32