[dpdk-dev,1/2] Fix CPU and memory parameters on IBM POWER8
Commit Message
This patch fixes the max logic number and memory channel number settings
on IBM POWER8 platform.
1. The max number of logic cores of a POWER8 processor is 96. Normally,
there are two sockets on a server. So the max number of logic cores
are 192. So this parch set CONFIG_RTE_MAX_LCORE to 256.
2. Currently, the max number of memory channels are hardcoded to 4. However,
on a POWER8 machine, the max number of memory channels are 8. To fix this,
CONFIG_RTE_MAX_NCHANNELS is added to do the configuration.
Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
---
config/common_base | 3 ++-
lib/librte_eal/common/eal_common_options.c | 2 +-
2 files changed, 3 insertions(+), 2 deletions(-)
Comments
On Fri, Mar 25, 2016 at 9:11 AM, Chao Zhu <chaozhu@linux.vnet.ibm.com> wrote:
> This patch fixes the max logic number and memory channel number settings
> on IBM POWER8 platform.
> 1. The max number of logic cores of a POWER8 processor is 96. Normally,
> there are two sockets on a server. So the max number of logic cores
> are 192. So this parch set CONFIG_RTE_MAX_LCORE to 256.
This is a power8 configuration item, this should go to power8 config
file, not common_base.
> 2. Currently, the max number of memory channels are hardcoded to 4. However,
> on a POWER8 machine, the max number of memory channels are 8. To fix this,
> CONFIG_RTE_MAX_NCHANNELS is added to do the configuration.
I don't see any reason why we would need a max value for force_nchannel.
We should just get rid of this check, this is an obscure parameter for
most people, so people playing with it know what they are doing
(hopefully ?).
On the other hand, if power8 has some specifics about it, maybe we
should introduce some default value in a arch eal header for other
dpdk components to use (like in mempool).
Thoughts ?
2016-03-25 09:48, David Marchand:
> On Fri, Mar 25, 2016 at 9:11 AM, Chao Zhu <chaozhu@linux.vnet.ibm.com> wrote:
> > This patch fixes the max logic number and memory channel number settings
> > on IBM POWER8 platform.
> > 1. The max number of logic cores of a POWER8 processor is 96. Normally,
> > there are two sockets on a server. So the max number of logic cores
> > are 192. So this parch set CONFIG_RTE_MAX_LCORE to 256.
>
> This is a power8 configuration item, this should go to power8 config
> file, not common_base.
>
> > 2. Currently, the max number of memory channels are hardcoded to 4. However,
> > on a POWER8 machine, the max number of memory channels are 8. To fix this,
> > CONFIG_RTE_MAX_NCHANNELS is added to do the configuration.
>
> I don't see any reason why we would need a max value for force_nchannel.
> We should just get rid of this check, this is an obscure parameter for
> most people, so people playing with it know what they are doing
> (hopefully ?).
>
> On the other hand, if power8 has some specifics about it, maybe we
> should introduce some default value in a arch eal header for other
> dpdk components to use (like in mempool).
> Thoughts ?
Chao? We are running out of time for 16.04.
Thomas,
Seems I didn't get the messages from David. Anyway, I sent out an updated
patch.
Thanks for reminder!
-----Original Message-----
From: Thomas Monjalon [mailto:thomas.monjalon@6wind.com]
Sent: 2016年3月30日 18:53
To: Chao Zhu <chaozhu@linux.vnet.ibm.com>
Cc: dev@dpdk.org; David Marchand <david.marchand@6wind.com>; Richardson,
Bruce <bruce.richardson@intel.com>; Panu Matilainen <pmatilai@redhat.com>
Subject: Re: [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters on IBM
POWER8
2016-03-25 09:48, David Marchand:
> On Fri, Mar 25, 2016 at 9:11 AM, Chao Zhu <chaozhu@linux.vnet.ibm.com>
wrote:
> > This patch fixes the max logic number and memory channel number
> > settings on IBM POWER8 platform.
> > 1. The max number of logic cores of a POWER8 processor is 96. Normally,
> > there are two sockets on a server. So the max number of logic cores
> > are 192. So this parch set CONFIG_RTE_MAX_LCORE to 256.
>
> This is a power8 configuration item, this should go to power8 config
> file, not common_base.
>
> > 2. Currently, the max number of memory channels are hardcoded to 4.
However,
> > on a POWER8 machine, the max number of memory channels are 8. To fix
this,
> > CONFIG_RTE_MAX_NCHANNELS is added to do the configuration.
>
> I don't see any reason why we would need a max value for force_nchannel.
> We should just get rid of this check, this is an obscure parameter for
> most people, so people playing with it know what they are doing
> (hopefully ?).
>
> On the other hand, if power8 has some specifics about it, maybe we
> should introduce some default value in a arch eal header for other
> dpdk components to use (like in mempool).
> Thoughts ?
Chao? We are running out of time for 16.04.
@@ -83,10 +83,11 @@ CONFIG_RTE_CACHE_LINE_SIZE=64
# Compile Environment Abstraction Layer
#
CONFIG_RTE_LIBRTE_EAL=y
-CONFIG_RTE_MAX_LCORE=128
+CONFIG_RTE_MAX_LCORE=256
CONFIG_RTE_MAX_NUMA_NODES=8
CONFIG_RTE_MAX_MEMSEG=256
CONFIG_RTE_MAX_MEMZONE=2560
+CONFIG_RTE_MAX_NCHANNELS=8
CONFIG_RTE_MAX_TAILQ=32
CONFIG_RTE_LOG_LEVEL=8
CONFIG_RTE_LOG_HISTORY=256
@@ -798,7 +798,7 @@ eal_parse_common_option(int opt, const char *optarg,
case 'n':
conf->force_nchannel = atoi(optarg);
if (conf->force_nchannel == 0 ||
- conf->force_nchannel > 4) {
+ conf->force_nchannel > RTE_MAX_NCHANNELS) {
RTE_LOG(ERR, EAL, "invalid channel number\n");
return -1;
}