DPDK patches and discussions
 help / color / mirror / Atom feed
* [dpdk-dev] [PATCH  v4 0/4] add travis ci support for ppc64le
@ 2020-04-02 17:12 David Wilder
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 1/4] eal/linux: force iova-mode va with no-huge option David Wilder
                   ` (5 more replies)
  0 siblings, 6 replies; 8+ messages in thread
From: David Wilder @ 2020-04-02 17:12 UTC (permalink / raw)
  To: aconole, maicolgabriel, thomas, ferruh.yigit, arybchenko
  Cc: dev, ruifeng.wang, david.marchand, drc, jerinjacobk, wilder

This patch series adds Travis gcc compilation jobs and unit testing
for ppc64le.  Limitations for ppc64le are similar to arm64 (see commit
31bb45bcfd).

1. Only gcc builds are supported on ppc64le.
2. Hugepages are not available in the ppc64le Travis environment.
3. Memory requirements are larger for ppc64le due to a higher
   RTE_MAX_LCORE value.

V2: Insures iova-mode is VA when --no-huge is selected.
    Removed setting of --iova-mode=VA in test-null.sh.
V3: Refactor ppc64le changes on top of David Marchand's
    Patch series: "Reorganise Travis jobs"
    http://mails.dpdk.org/archives/dev/2020-February/158231.html
V4: Adding unit testing.
    Updated eal/linux: patch to force PA mode when --huge-page is used.
    This should be a more straightforward solution than my V3 patch.

A Travis build with theses patches can be found here:
https://travis-ci.org/github/djlwilder/dpdk/builds/670214578
David Wilder (4):
  eal/linux: force iova-mode va with no-huge option
  devtools: allow test-null.sh to run on ppc64le
  ci: add travis ci support for native ppc64le
  ci: enable unit test for ppc64le

 .travis.yml                | 23 +++++++++++++++++++++++
 devtools/test-null.sh      |  2 +-
 lib/librte_eal/linux/eal.c | 24 ++++++++++++------------
 3 files changed, 36 insertions(+), 13 deletions(-)

-- 
2.25.0


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

* [dpdk-dev] [PATCH v4 1/4] eal/linux: force iova-mode va with no-huge option
  2020-04-02 17:12 [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le David Wilder
@ 2020-04-02 17:12 ` David Wilder
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 2/4] devtools: allow test-null.sh to run on ppc64le David Wilder
                   ` (4 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: David Wilder @ 2020-04-02 17:12 UTC (permalink / raw)
  To: aconole, maicolgabriel, thomas, ferruh.yigit, arybchenko
  Cc: dev, ruifeng.wang, david.marchand, drc, jerinjacobk, wilder

When using --no-huge option the iova-mode must be VA.
Physical address are not guaranteed to be persistent with out
hugepages. This change effectively makes "--no-huge" the same as
"--no-huge --iova-mode=va".  When --no-huge is used setting --iova-mode=pa
will have no effect.

Signed-off-by: David Wilder <dwilder@us.ibm.com>
---
 lib/librte_eal/linux/eal.c | 24 ++++++++++++------------
 1 file changed, 12 insertions(+), 12 deletions(-)

diff --git a/lib/librte_eal/linux/eal.c b/lib/librte_eal/linux/eal.c
index 9530ee55f..44e950f9c 100644
--- a/lib/librte_eal/linux/eal.c
+++ b/lib/librte_eal/linux/eal.c
@@ -1060,6 +1060,11 @@ rte_eal_init(int argc, char **argv)
 
 	phys_addrs = rte_eal_using_phys_addrs() != 0;
 
+	if (!phys_addrs) {
+		internal_config.iova_mode = RTE_IOVA_VA;
+		RTE_LOG(INFO, EAL, "Physical addresses are unavailable, selecting IOVA as VA mode.\n");
+	}
+
 	/* if no EAL option "--iova-mode=<pa|va>", use bus IOVA scheme */
 	if (internal_config.iova_mode == RTE_IOVA_DC) {
 		/* autodetect the IOVA mapping mode */
@@ -1068,18 +1073,7 @@ rte_eal_init(int argc, char **argv)
 		if (iova_mode == RTE_IOVA_DC) {
 			RTE_LOG(DEBUG, EAL, "Buses did not request a specific IOVA mode.\n");
 
-			if (!phys_addrs) {
-				/* if we have no access to physical addresses,
-				 * pick IOVA as VA mode.
-				 */
-				iova_mode = RTE_IOVA_VA;
-				RTE_LOG(DEBUG, EAL, "Physical addresses are unavailable, selecting IOVA as VA mode.\n");
-#if defined(RTE_LIBRTE_KNI) && LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
-			} else if (rte_eal_check_module("rte_kni") == 1) {
-				iova_mode = RTE_IOVA_PA;
-				RTE_LOG(DEBUG, EAL, "KNI is loaded, selecting IOVA as PA mode for better KNI perfomance.\n");
-#endif
-			} else if (is_iommu_enabled()) {
+			if (is_iommu_enabled()) {
 				/* we have an IOMMU, pick IOVA as VA mode */
 				iova_mode = RTE_IOVA_VA;
 				RTE_LOG(DEBUG, EAL, "IOMMU is available, selecting IOVA as VA mode.\n");
@@ -1090,6 +1084,12 @@ rte_eal_init(int argc, char **argv)
 				iova_mode = RTE_IOVA_PA;
 				RTE_LOG(DEBUG, EAL, "IOMMU is not available, selecting IOVA as PA mode.\n");
 			}
+#if defined(RTE_LIBRTE_KNI) && LINUX_VERSION_CODE >= KERNEL_VERSION(4, 10, 0)
+			if (rte_eal_check_module("rte_kni") == 1) {
+				iova_mode = RTE_IOVA_PA;
+				RTE_LOG(DEBUG, EAL, "KNI is loaded, selecting IOVA as PA mode for better KNI perfomance.\n");
+			}
+#endif
 		}
 #if defined(RTE_LIBRTE_KNI) && LINUX_VERSION_CODE < KERNEL_VERSION(4, 10, 0)
 		/* Workaround for KNI which requires physical address to work
-- 
2.25.0


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

* [dpdk-dev] [PATCH v4 2/4] devtools: allow test-null.sh to run on ppc64le
  2020-04-02 17:12 [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le David Wilder
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 1/4] eal/linux: force iova-mode va with no-huge option David Wilder
@ 2020-04-02 17:12 ` David Wilder
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 3/4] ci: add travis ci support for native ppc64le David Wilder
                   ` (3 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: David Wilder @ 2020-04-02 17:12 UTC (permalink / raw)
  To: aconole, maicolgabriel, thomas, ferruh.yigit, arybchenko
  Cc: dev, ruifeng.wang, david.marchand, drc, jerinjacobk, wilder

Memory requirements are larger for ppc64le
due to a higher RTE_MAX_LCORE value.

Signed-off-by: David Wilder <dwilder@us.ibm.com>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
---
 devtools/test-null.sh | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/devtools/test-null.sh b/devtools/test-null.sh
index 548de8113..b7defe1fd 100755
--- a/devtools/test-null.sh
+++ b/devtools/test-null.sh
@@ -27,6 +27,6 @@ else
 fi
 
 (sleep 1 && echo stop) |
-$testpmd -c $coremask --no-huge -m 20 \
+$testpmd -c $coremask --no-huge -m 30 \
 	$libs -w 0:0.0 --vdev net_null1 --vdev net_null2 $eal_options -- \
 	--no-mlockall --total-num-mbufs=2048 $testpmd_options -ia
-- 
2.25.0


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

* [dpdk-dev] [PATCH v4 3/4] ci: add travis ci support for native ppc64le
  2020-04-02 17:12 [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le David Wilder
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 1/4] eal/linux: force iova-mode va with no-huge option David Wilder
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 2/4] devtools: allow test-null.sh to run on ppc64le David Wilder
@ 2020-04-02 17:12 ` David Wilder
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 4/4] ci: enable unit test for ppc64le David Wilder
                   ` (2 subsequent siblings)
  5 siblings, 0 replies; 8+ messages in thread
From: David Wilder @ 2020-04-02 17:12 UTC (permalink / raw)
  To: aconole, maicolgabriel, thomas, ferruh.yigit, arybchenko
  Cc: dev, ruifeng.wang, david.marchand, drc, jerinjacobk, wilder

This change follows the example of aarch64 Travis support
by adding support for ppc64le gcc builds.  Limitations for
ppc64le are the same as aarch64 as described in:
commit 31bb45bcfdf5 ("ci: add travis ci support for native aarch64").

Signed-off-by: David Wilder <dwilder@us.ibm.com>
Reviewed-by: David Christensen <drc@linux.vnet.ibm.com>
---
 .travis.yml | 20 ++++++++++++++++++++
 1 file changed, 20 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index fd4f79cfc..2afb80e46 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -131,3 +131,23 @@ jobs:
   - env: DEF_LIB="shared" RUN_TESTS=1
     arch: arm64
     compiler: clang
+  # ppc64le gcc jobs
+  - env: DEF_LIB="static"
+    arch: ppc64le
+    compiler: gcc
+  - env: DEF_LIB="shared" BUILD_DOCS=1
+    arch: ppc64le
+    compiler: gcc
+    addons:
+      apt:
+        packages:
+          - *required_packages
+          - *doc_packages
+  - env: DEF_LIB="shared" ABI_CHECKS=1
+    arch: ppc64le
+    compiler: gcc
+    addons:
+      apt:
+        packages:
+          - *required_packages
+          - *libabigail_build_packages
-- 
2.25.0


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

* [dpdk-dev] [PATCH  v4 4/4] ci: enable unit test for ppc64le
  2020-04-02 17:12 [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le David Wilder
                   ` (2 preceding siblings ...)
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 3/4] ci: add travis ci support for native ppc64le David Wilder
@ 2020-04-02 17:12 ` David Wilder
  2021-03-25 15:06 ` [dpdk-dev] [PATCH v4 0/4] add travis ci support " David Marchand
  2021-04-15 14:45 ` Christian Ehrhardt
  5 siblings, 0 replies; 8+ messages in thread
From: David Wilder @ 2020-04-02 17:12 UTC (permalink / raw)
  To: aconole, maicolgabriel, thomas, ferruh.yigit, arybchenko
  Cc: dev, ruifeng.wang, david.marchand, drc, jerinjacobk, wilder

Add Travis CI jobs to run unit tests on ppc64le platform.

Signed-off-by: David Wilder <dwilder@us.ibm.com>
---
 .travis.yml | 3 +++
 1 file changed, 3 insertions(+)

diff --git a/.travis.yml b/.travis.yml
index 2afb80e46..7db5c5c7e 100644
--- a/.travis.yml
+++ b/.travis.yml
@@ -135,6 +135,9 @@ jobs:
   - env: DEF_LIB="static"
     arch: ppc64le
     compiler: gcc
+  - env: DEF_LIB="shared" RUN_TESTS=1
+    arch: ppc64le
+    compiler: gcc
   - env: DEF_LIB="shared" BUILD_DOCS=1
     arch: ppc64le
     compiler: gcc
-- 
2.25.0


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

* Re: [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le
  2020-04-02 17:12 [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le David Wilder
                   ` (3 preceding siblings ...)
  2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 4/4] ci: enable unit test for ppc64le David Wilder
@ 2021-03-25 15:06 ` David Marchand
  2021-04-15 14:45 ` Christian Ehrhardt
  5 siblings, 0 replies; 8+ messages in thread
From: David Marchand @ 2021-03-25 15:06 UTC (permalink / raw)
  To: David Wilder, Burakov, Anatoly
  Cc: Aaron Conole, Michael Santana, Thomas Monjalon, Yigit, Ferruh,
	Andrew Rybchenko, dev, Ruifeng Wang (Arm Technology China),
	David Christensen, Jerin Jacob, David Wilder

On Thu, Apr 2, 2020 at 7:13 PM David Wilder <dwilder@us.ibm.com> wrote:
>
> This patch series adds Travis gcc compilation jobs and unit testing
> for ppc64le.  Limitations for ppc64le are similar to arm64 (see commit
> 31bb45bcfd).
>
> 1. Only gcc builds are supported on ppc64le.
> 2. Hugepages are not available in the ppc64le Travis environment.
> 3. Memory requirements are larger for ppc64le due to a higher
>    RTE_MAX_LCORE value.
>
> V2: Insures iova-mode is VA when --no-huge is selected.
>     Removed setting of --iova-mode=VA in test-null.sh.
> V3: Refactor ppc64le changes on top of David Marchand's
>     Patch series: "Reorganise Travis jobs"
>     http://mails.dpdk.org/archives/dev/2020-February/158231.html
> V4: Adding unit testing.
>     Updated eal/linux: patch to force PA mode when --huge-page is used.
>     This should be a more straightforward solution than my V3 patch.
>
> A Travis build with theses patches can be found here:
> https://travis-ci.org/github/djlwilder/dpdk/builds/670214578
> David Wilder (4):
>   eal/linux: force iova-mode va with no-huge option
>   devtools: allow test-null.sh to run on ppc64le
>   ci: add travis ci support for native ppc64le
>   ci: enable unit test for ppc64le
>

Is this series still applicable?
The changes on EAL did not get a review.


-- 
David Marchand


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

* Re: [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le
  2020-04-02 17:12 [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le David Wilder
                   ` (4 preceding siblings ...)
  2021-03-25 15:06 ` [dpdk-dev] [PATCH v4 0/4] add travis ci support " David Marchand
@ 2021-04-15 14:45 ` Christian Ehrhardt
  2021-04-19 12:22   ` Luca Boccassi
  5 siblings, 1 reply; 8+ messages in thread
From: Christian Ehrhardt @ 2021-04-15 14:45 UTC (permalink / raw)
  To: David Wilder, Luca Boccassi
  Cc: Aaron Conole, maicolgabriel, Thomas Monjalon, Ferruh Yigit,
	Andrew Rybchenko, dev, ruifeng.wang, david.marchand,
	David Christensen, jerinjacobk, wilder

On Thu, Apr 2, 2020 at 7:13 PM David Wilder <dwilder@us.ibm.com> wrote:
>
> This patch series adds Travis gcc compilation jobs and unit testing
> for ppc64le.  Limitations for ppc64le are similar to arm64 (see commit
> 31bb45bcfd).
>
> 1. Only gcc builds are supported on ppc64le.
> 2. Hugepages are not available in the ppc64le Travis environment.
> 3. Memory requirements are larger for ppc64le due to a higher
>    RTE_MAX_LCORE value.
>
> V2: Insures iova-mode is VA when --no-huge is selected.
>     Removed setting of --iova-mode=VA in test-null.sh.
> V3: Refactor ppc64le changes on top of David Marchand's
>     Patch series: "Reorganise Travis jobs"
>     http://mails.dpdk.org/archives/dev/2020-February/158231.html
> V4: Adding unit testing.
>     Updated eal/linux: patch to force PA mode when --huge-page is used.
>     This should be a more straightforward solution than my V3 patch.
>
> A Travis build with theses patches can be found here:
> https://travis-ci.org/github/djlwilder/dpdk/builds/670214578
> David Wilder (4):
>   eal/linux: force iova-mode va with no-huge option
>   devtools: allow test-null.sh to run on ppc64le

This affects our testing and from reviewing the code I think the first
two are safe and good.
In addition it affects mostly no-huge which is almost testing-only.
Therefore for patch #1 and #2:

Reviewed-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>

@Luca - could you give this a try if it applies and fixes our issues please?
That would also answer DMs question about applicability.

>   ci: add travis ci support for native ppc64le
>   ci: enable unit test for ppc64le

I can't speak much about the travis change :-/


>  .travis.yml                | 23 +++++++++++++++++++++++
>  devtools/test-null.sh      |  2 +-
>  lib/librte_eal/linux/eal.c | 24 ++++++++++++------------
>  3 files changed, 36 insertions(+), 13 deletions(-)
>
> --
> 2.25.0
>


--
Christian Ehrhardt
Staff Engineer, Ubuntu Server
Canonical Ltd

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

* Re: [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le
  2021-04-15 14:45 ` Christian Ehrhardt
@ 2021-04-19 12:22   ` Luca Boccassi
  0 siblings, 0 replies; 8+ messages in thread
From: Luca Boccassi @ 2021-04-19 12:22 UTC (permalink / raw)
  To: Christian Ehrhardt, David Wilder
  Cc: Aaron Conole, maicolgabriel, Thomas Monjalon, Ferruh Yigit,
	Andrew Rybchenko, dev, ruifeng.wang, david.marchand,
	David Christensen, jerinjacobk, wilder

On Thu, 2021-04-15 at 16:45 +0200, Christian Ehrhardt wrote:
> On Thu, Apr 2, 2020 at 7:13 PM David Wilder <dwilder@us.ibm.com> wrote:
> > This patch series adds Travis gcc compilation jobs and unit testing
> > for ppc64le.  Limitations for ppc64le are similar to arm64 (see commit
> > 31bb45bcfd).
> > 
> > 1. Only gcc builds are supported on ppc64le.
> > 2. Hugepages are not available in the ppc64le Travis environment.
> > 3. Memory requirements are larger for ppc64le due to a higher
> >    RTE_MAX_LCORE value.
> > 
> > V2: Insures iova-mode is VA when --no-huge is selected.
> >     Removed setting of --iova-mode=VA in test-null.sh.
> > V3: Refactor ppc64le changes on top of David Marchand's
> >     Patch series: "Reorganise Travis jobs"
> >     http://mails.dpdk.org/archives/dev/2020-February/158231.html
> > V4: Adding unit testing.
> >     Updated eal/linux: patch to force PA mode when --huge-page is used.
> >     This should be a more straightforward solution than my V3 patch.
> > 
> > A Travis build with theses patches can be found here:
> > https://travis-ci.org/github/djlwilder/dpdk/builds/670214578
> > David Wilder (4):
> >   eal/linux: force iova-mode va with no-huge option
> >   devtools: allow test-null.sh to run on ppc64le
> 
> This affects our testing and from reviewing the code I think the first
> two are safe and good.
> In addition it affects mostly no-huge which is almost testing-only.
> Therefore for patch #1 and #2:
> 
> Reviewed-by: Christian Ehrhardt <christian.ehrhardt@canonical.com>
> 
> @Luca - could you give this a try if it applies and fixes our issues please?
> That would also answer DMs question about applicability.

Hi,

The first patch applies with very minor and trivial refresh for fuzz to
20.11, and fixes the issue for me - the fast suite can now run without
privileges in autopkgtest. I'd like to have this included for 21.05 so
that we can fix the tests.

So:

Tested-by: Luca Boccassi <bluca@debian.org>

-- 
Kind regards,
Luca Boccassi

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

end of thread, other threads:[~2021-04-19 12:22 UTC | newest]

Thread overview: 8+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-04-02 17:12 [dpdk-dev] [PATCH v4 0/4] add travis ci support for ppc64le David Wilder
2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 1/4] eal/linux: force iova-mode va with no-huge option David Wilder
2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 2/4] devtools: allow test-null.sh to run on ppc64le David Wilder
2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 3/4] ci: add travis ci support for native ppc64le David Wilder
2020-04-02 17:12 ` [dpdk-dev] [PATCH v4 4/4] ci: enable unit test for ppc64le David Wilder
2021-03-25 15:06 ` [dpdk-dev] [PATCH v4 0/4] add travis ci support " David Marchand
2021-04-15 14:45 ` Christian Ehrhardt
2021-04-19 12:22   ` Luca Boccassi

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