DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH 0/2] Fix parameters and prefetch function on IBM POWER8
@ 2016-03-25  8:11 Chao Zhu
  2016-03-25  8:11 ` [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters " Chao Zhu
  2016-03-25  8:11 ` [dpdk-dev] [PATCH 2/2] Fix prefetch instruction " Chao Zhu
  0 siblings, 2 replies; 6+ messages in thread
From: Chao Zhu @ 2016-03-25  8:11 UTC (permalink / raw)
  To: dev

This patch set fixes CPU/memory parameters and correct wrong prefetch settings for IBM POWER8.

Chao Zhu (2):
  Fix CPU and memory parameters on IBM POWER8
  Fix prefetch instruction on IBM POWER8

 config/common_base                                 |    3 ++-
 lib/librte_eal/common/eal_common_options.c         |    2 +-
 .../common/include/arch/ppc_64/rte_prefetch.h      |    6 +++---
 3 files changed, 6 insertions(+), 5 deletions(-)

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters on IBM POWER8
  2016-03-25  8:11 [dpdk-dev] [PATCH 0/2] Fix parameters and prefetch function on IBM POWER8 Chao Zhu
@ 2016-03-25  8:11 ` Chao Zhu
  2016-03-25  8:48   ` David Marchand
  2016-03-25  8:11 ` [dpdk-dev] [PATCH 2/2] Fix prefetch instruction " Chao Zhu
  1 sibling, 1 reply; 6+ messages in thread
From: Chao Zhu @ 2016-03-25  8:11 UTC (permalink / raw)
  To: dev

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(-)

diff --git a/config/common_base b/config/common_base
index dbd405b..1beea32 100644
--- a/config/common_base
+++ b/config/common_base
@@ -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
diff --git a/lib/librte_eal/common/eal_common_options.c b/lib/librte_eal/common/eal_common_options.c
index 29942ea..6c268c1 100644
--- a/lib/librte_eal/common/eal_common_options.c
+++ b/lib/librte_eal/common/eal_common_options.c
@@ -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;
 		}
-- 
1.7.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* [dpdk-dev] [PATCH 2/2] Fix prefetch instruction on IBM POWER8
  2016-03-25  8:11 [dpdk-dev] [PATCH 0/2] Fix parameters and prefetch function on IBM POWER8 Chao Zhu
  2016-03-25  8:11 ` [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters " Chao Zhu
@ 2016-03-25  8:11 ` Chao Zhu
  1 sibling, 0 replies; 6+ messages in thread
From: Chao Zhu @ 2016-03-25  8:11 UTC (permalink / raw)
  To: dev

Current prefetch instruction (dcbt) implementation for IBM POWER8 has wrong
Touch Hint(TH) parameter. The current setting of TH=1 indicates to load data from
current cache line and an unlimited number of sequentially following cache lines.
TTH=0 means to load data from current cache line. rte_prefetch0 function is defined
to load one cache line, which means TH=0 is suited here.

Signed-off-by: Chao Zhu <chaozhu@linux.vnet.ibm.com>
---
 .../common/include/arch/ppc_64/rte_prefetch.h      |    6 +++---
 1 files changed, 3 insertions(+), 3 deletions(-)

diff --git a/lib/librte_eal/common/include/arch/ppc_64/rte_prefetch.h b/lib/librte_eal/common/include/arch/ppc_64/rte_prefetch.h
index bcc7185..9a1995e 100644
--- a/lib/librte_eal/common/include/arch/ppc_64/rte_prefetch.h
+++ b/lib/librte_eal/common/include/arch/ppc_64/rte_prefetch.h
@@ -41,17 +41,17 @@ extern "C" {
 
 static inline void rte_prefetch0(const volatile void *p)
 {
-	asm volatile ("dcbt 0,%[p],1" : : [p] "r" (p));
+	asm volatile ("dcbt 0,%[p],0" : : [p] "r" (p));
 }
 
 static inline void rte_prefetch1(const volatile void *p)
 {
-	asm volatile ("dcbt 0,%[p],1" : : [p] "r" (p));
+	asm volatile ("dcbt 0,%[p],0" : : [p] "r" (p));
 }
 
 static inline void rte_prefetch2(const volatile void *p)
 {
-	asm volatile ("dcbt 0,%[p],1" : : [p] "r" (p));
+	asm volatile ("dcbt 0,%[p],0" : : [p] "r" (p));
 }
 
 static inline void rte_prefetch_non_temporal(const volatile void *p)
-- 
1.7.1

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters on IBM POWER8
  2016-03-25  8:11 ` [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters " Chao Zhu
@ 2016-03-25  8:48   ` David Marchand
  2016-03-30 10:52     ` Thomas Monjalon
  0 siblings, 1 reply; 6+ messages in thread
From: David Marchand @ 2016-03-25  8:48 UTC (permalink / raw)
  To: Chao Zhu; +Cc: dev, Richardson, Bruce, Panu Matilainen

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 ?


-- 
David Marchand

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters on IBM POWER8
  2016-03-25  8:48   ` David Marchand
@ 2016-03-30 10:52     ` Thomas Monjalon
  2016-03-31  1:44       ` Chao Zhu
  0 siblings, 1 reply; 6+ messages in thread
From: Thomas Monjalon @ 2016-03-30 10:52 UTC (permalink / raw)
  To: Chao Zhu; +Cc: dev, David Marchand, Richardson, Bruce, Panu Matilainen

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.

^ permalink raw reply	[flat|nested] 6+ messages in thread

* Re: [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters on IBM POWER8
  2016-03-30 10:52     ` Thomas Monjalon
@ 2016-03-31  1:44       ` Chao Zhu
  0 siblings, 0 replies; 6+ messages in thread
From: Chao Zhu @ 2016-03-31  1:44 UTC (permalink / raw)
  To: 'Thomas Monjalon'
  Cc: dev, 'David Marchand', 'Richardson, Bruce',
	'Panu Matilainen'

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.

^ permalink raw reply	[flat|nested] 6+ messages in thread

end of thread, other threads:[~2016-03-31  1:44 UTC | newest]

Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2016-03-25  8:11 [dpdk-dev] [PATCH 0/2] Fix parameters and prefetch function on IBM POWER8 Chao Zhu
2016-03-25  8:11 ` [dpdk-dev] [PATCH 1/2] Fix CPU and memory parameters " Chao Zhu
2016-03-25  8:48   ` David Marchand
2016-03-30 10:52     ` Thomas Monjalon
2016-03-31  1:44       ` Chao Zhu
2016-03-25  8:11 ` [dpdk-dev] [PATCH 2/2] Fix prefetch instruction " Chao Zhu

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).