Skip to contentSkip to conversation

ltp-testsuite: disable numa tests

PATCH New Baruch Siach 4 participants 12 messages Jan 26, 2018 – Jan 28, 2018

lore
Share & tools
lore
#0 lore raw

PATCH 1/2 ltp-testsuite: disable numa tests

The LTP_CHECK_SYSCALL_NUMA autoconf macro uses AC_RUN_IFELSE when it detects the numaif.h header. This is incompatible with cross compilation.

Fixes:
http://autobuild.buildroot.net/results/21a/21a6eeddbf5ccffc34c38527d0807305a5eb3917/
http://autobuild.buildroot.net/results/fc0/fc01921e8e8e1ea100461b29137c4219e6686c58/
http://autobuild.buildroot.net/results/962/96285d154abd65838ff5c66e96db309d9ac26c80/

---
 package/ltp-testsuite/ltp-testsuite.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/ltp-testsuite/ltp-testsuite.mk +2 -1
index 87854568d8a6..28dc24749ec8 100644
@@ -56,7 +56,8 @@ LTP_TESTSUITE_CONF_ENV += \
 	CFLAGS="$(LTP_TESTSUITE_CFLAGS)" \
 	CPPFLAGS="$(LTP_TESTSUITE_CPPFLAGS)" \
 	LIBS="$(LTP_TESTSUITE_LIBS)" \
-	SYSROOT="$(STAGING_DIR)"
+	SYSROOT="$(STAGING_DIR)" \
+	have_numa_headers=no
 
 # Requires uClibc fts and bessel support, normally not enabled
 ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
Signature · 1 line
2.15.1
#1 lore raw

PATCH 2/2 ltp-testsuite: drop redundant arch dependency entries

BR2_TOOLCHAIN_HAS_SYNC_4 is enabled for all these architectures except arc. There is no need to list them explicitly.

Cc Romain Naour <[email protected]>
Cc Petr Vorel <[email protected]>
---
 package/ltp-testsuite/Config.in | 5 -----
 1 file changed, 5 deletions(-)
package/ltp-testsuite/Config.in +0 -5
index 4c00e40f330e..711c859e6caf 100644
@@ -5,11 +5,6 @@ config BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS
 	# provided in ltp-testsuite
 	default y if BR2_TOOLCHAIN_HAS_SYNC_4
 	default y if BR2_arc
-	default y if BR2_i386
-	default y if BR2_powerpc
-	default y if BR2_powepc64
-	default y if BR2_powerpc64le
-	default y if BR2_x86_64
 	# does not build on nios2, cachectl.h issue
 	depends on !BR2_nios2
 
Signature · 1 line
2.15.1
#2 lore raw

PATCH 2/2 ltp-testsuite: drop redundant arch dependency entries

Quoted 15 lines

BR2_TOOLCHAIN_HAS_SYNC_4 is enabled for all these architectures except arc. There is no need to list them explicitly.

Cc Romain Naour <[email protected]>
Cc Petr Vorel <[email protected]>
---
 package/ltp-testsuite/Config.in | 5 -----
 1 file changed, 5 deletions(-)
package/ltp-testsuite/Config.in +0 -0
index 4c00e40f330e..711c859e6caf 100644

package/ltp-testsuite/Config.in config BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS · line 9

Quoted 10 lines
package/ltp-testsuite/Config.in +0 -5
@@ -5,11 +5,6 @@ config BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS
 	# provided in ltp-testsuite
 	default y if BR2_TOOLCHAIN_HAS_SYNC_4
 	default y if BR2_arc
-	default y if BR2_i386
-	default y if BR2_powerpc
-	default y if BR2_powepc64
-	default y if BR2_powerpc64le
-	default y if BR2_x86_64
 	# does not build on nios2, cachectl.h issue
 	depends on !BR2_nios2

Kind regards,
Petr

#3 lore raw

PATCH 2/2 ltp-testsuite: drop redundant arch dependency entries

In reply to Baruch Siach
Quoted 8 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Baruch" == Baruch Siach <[email protected]> writes:

BR2_TOOLCHAIN_HAS_SYNC_4 is enabled for all these architectures except arc. There is no need to list them explicitly.

Cc Romain Naour <[email protected]>
Cc Petr Vorel <[email protected]>

Committed, thanks.

Signature · 1 line
Bye, Peter Korsgaard
#4 lore raw

PATCH 2/2 ltp-testsuite: drop redundant arch dependency entries

In reply to Baruch Siach

Hello,

Quoted 15 lines · Baruch Siach

BR2_TOOLCHAIN_HAS_SYNC_4 is enabled for all these architectures except arc. There is no need to list them explicitly.

Cc Romain Naour <[email protected]>
Cc Petr Vorel <[email protected]>
---
 package/ltp-testsuite/Config.in | 5 -----
 1 file changed, 5 deletions(-)
package/ltp-testsuite/Config.in +0 -0
index 4c00e40f330e..711c859e6caf 100644

package/ltp-testsuite/Config.in config BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS · line 12

Quoted 8 lines
package/ltp-testsuite/Config.in +0 -5
@@ -5,11 +5,6 @@ config BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS
 	# provided in ltp-testsuite
 	default y if BR2_TOOLCHAIN_HAS_SYNC_4
 	default y if BR2_arc
-	default y if BR2_i386
-	default y if BR2_powerpc
-	default y if BR2_powepc64
-	default y if BR2_powerpc64le
-	default y if BR2_x86_64

Is this really a correct patch ? It's not because BR2_TOOLCHAIN_HAS_SYNC_4 already covers i386/powerpc/powerpc64/powerpc64le/x86_64 that it makes sense to use BR2_TOOLCHAIN_HAS_SYNC_4 instead.

What if an architecture gets added to BR2_TOOLCHAIN_HAS_SYNC_4, but isn't supported by ltp-testsuite ?

Best regards,

Thomas

Signature · 3 lines
Thomas Petazzoni, CTO, Free Electrons
Embedded Linux and Kernel engineering
http://free-electrons.com
#5 lore raw

PATCH 2/2 ltp-testsuite: drop redundant arch dependency entries

Hi Thomas,

Quoted 30 lines · Thomas Petazzoni
Quoted 15 lines · Baruch Siach

BR2_TOOLCHAIN_HAS_SYNC_4 is enabled for all these architectures except arc. There is no need to list them explicitly.

Cc Romain Naour <[email protected]>
Cc Petr Vorel <[email protected]>
---
 package/ltp-testsuite/Config.in | 5 -----
 1 file changed, 5 deletions(-)
package/ltp-testsuite/Config.in +0 -0
index 4c00e40f330e..711c859e6caf 100644

package/ltp-testsuite/Config.in config BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS · line 12

Quoted 8 lines
package/ltp-testsuite/Config.in +0 -5
@@ -5,11 +5,6 @@ config BR2_PACKAGE_LTP_TESTSUITE_ARCH_SUPPORTS
 	# provided in ltp-testsuite
 	default y if BR2_TOOLCHAIN_HAS_SYNC_4
 	default y if BR2_arc
-	default y if BR2_i386
-	default y if BR2_powerpc
-	default y if BR2_powepc64
-	default y if BR2_powerpc64le
-	default y if BR2_x86_64

Is this really a correct patch ? It's not because BR2_TOOLCHAIN_HAS_SYNC_4 already covers i386/powerpc/powerpc64/powerpc64le/x86_64 that it makes sense to use BR2_TOOLCHAIN_HAS_SYNC_4 instead.

Quoted 2 lines

What if an architecture gets added to BR2_TOOLCHAIN_HAS_SYNC_4, but isn't supported by ltp-testsuite ?

My understanding, based on the commit log of 583f59702bdd (package/ltp-testsuite: refine architecture dependency), is that when the toolchain implements __sync_add_and_fetch() there is no need for the architecture specific fallback implementation that ltp-testsuite provides. This is the case already for e.g. ARM. So as long as the added architecture is covered by BR2_TOOLCHAIN_HAS_SYNC_4, we should be fine.

baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
#6 lore raw

PATCH 1/2 ltp-testsuite: disable numa tests

In reply to Baruch Siach

Hi Baruch,

Quoted 3 lines

The LTP_CHECK_SYSCALL_NUMA autoconf macro uses AC_RUN_IFELSE when it detects the numaif.h header. This is incompatible with cross compilation.

Is it really about cross compilation or about out-of-tree building?
Any idea how to fix it in upstream? As we test both cross compilation and out out-of-tree compilation with travis:
https://travis-ci.org/linux-test-project/ltp/builds/333338092

* aarch64 cross compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338103
* arm cross compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338102
* native out-of-tree compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338101

Quoted 16 lines

Fixes:
http://autobuild.buildroot.net/results/21a/21a6eeddbf5ccffc34c38527d0807305a5eb3917/
http://autobuild.buildroot.net/results/fc0/fc01921e8e8e1ea100461b29137c4219e6686c58/
http://autobuild.buildroot.net/results/962/96285d154abd65838ff5c66e96db309d9ac26c80/

---
 package/ltp-testsuite/ltp-testsuite.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/ltp-testsuite/ltp-testsuite.mk +0 -0
index 87854568d8a6..28dc24749ec8 100644

package/ltp-testsuite/ltp-testsuite.mk LTP_TESTSUITE_CONF_ENV += \ · line 63

Quoted 9 lines
package/ltp-testsuite/ltp-testsuite.mk +2 -1
@@ -56,7 +56,8 @@ LTP_TESTSUITE_CONF_ENV += \
 	CFLAGS="$(LTP_TESTSUITE_CFLAGS)" \
 	CPPFLAGS="$(LTP_TESTSUITE_CPPFLAGS)" \
 	LIBS="$(LTP_TESTSUITE_LIBS)" \
-	SYSROOT="$(STAGING_DIR)"
+	SYSROOT="$(STAGING_DIR)" \
+	have_numa_headers=no
 
 # Requires uClibc fts and bessel support, normally not enabled
 ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)

Kind regards,
Petr

#7 lore raw

PATCH 1/2 ltp-testsuite: disable numa tests

Hi Petr,

Quoted 5 lines · Petr Vorel

Hi Baruch,

Quoted 3 lines

The LTP_CHECK_SYSCALL_NUMA autoconf macro uses AC_RUN_IFELSE when it detects the numaif.h header. This is incompatible with cross compilation.

Is it really about cross compilation or about out-of-tree building?

As I understand this is about cross compilation, which is inherently incompatible with AC_RUN_IFELSE[1].

Quoted 10 lines

Any idea how to fix it in upstream? As we test both cross compilation and out out-of-tree compilation with travis:
https://travis-ci.org/linux-test-project/ltp/builds/333338092

* aarch64 cross compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338103
* arm cross compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338102
* native out-of-tree compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338101

Do you nave libnuma (numactl) installed in these tests? If not, the AC_RUN_IFELSE test is skipped. You can reproduce this build failure in Buildroot by first building the numactl package, and then ltp-testsuite.

[1] https://www.gnu.org/software/autoconf/manual/autoconf.html#Runtime

Quoted 23 lines
Quoted 22 lines

Fixes:
http://autobuild.buildroot.net/results/21a/21a6eeddbf5ccffc34c38527d0807305a5eb3917/
http://autobuild.buildroot.net/results/fc0/fc01921e8e8e1ea100461b29137c4219e6686c58/
http://autobuild.buildroot.net/results/962/96285d154abd65838ff5c66e96db309d9ac26c80/

---
 package/ltp-testsuite/ltp-testsuite.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/ltp-testsuite/ltp-testsuite.mk +2 -1
index 87854568d8a6..28dc24749ec8 100644
@@ -56,7 +56,8 @@ LTP_TESTSUITE_CONF_ENV += \
 	CFLAGS="$(LTP_TESTSUITE_CFLAGS)" \
 	CPPFLAGS="$(LTP_TESTSUITE_CPPFLAGS)" \
 	LIBS="$(LTP_TESTSUITE_LIBS)" \
-	SYSROOT="$(STAGING_DIR)"
+	SYSROOT="$(STAGING_DIR)" \
+	have_numa_headers=no
Quoted 4 lines

package/ltp-testsuite/ltp-testsuite.mk LTP_TESTSUITE_CONF_ENV += \ · line 63

Quoted 2 lines
package/ltp-testsuite/ltp-testsuite.mk +0 -0
 # Requires uClibc fts and bessel support, normally not enabled
 ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)

Thanks,
baruch

Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
#8 lore raw

PATCH 1/2 ltp-testsuite: disable numa tests

Hi Petr,

Quoted 10 lines · Baruch Siach
Quoted 4 lines · Petr Vorel
Quoted 3 lines

The LTP_CHECK_SYSCALL_NUMA autoconf macro uses AC_RUN_IFELSE when it detects the numaif.h header. This is incompatible with cross compilation.

Is it really about cross compilation or about out-of-tree building?

As I understand this is about cross compilation, which is inherently incompatible with AC_RUN_IFELSE[1].

Quoted 1 line

Any idea how to fix it in upstream?

Thinking about this a little more, I think you can make the test into a compile time test instead of run-time with something like:

#if LIBNUMA_API_VERSION < 2
#error libnuma API version too old
#endif

baruch

Quoted 44 lines
Quoted 10 lines

As we test both cross compilation and out out-of-tree compilation with travis:
https://travis-ci.org/linux-test-project/ltp/builds/333338092

* aarch64 cross compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338103
* arm cross compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338102
* native out-of-tree compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338101

Do you nave libnuma (numactl) installed in these tests? If not, the AC_RUN_IFELSE test is skipped. You can reproduce this build failure in Buildroot by first building the numactl package, and then ltp-testsuite.

[1] https://www.gnu.org/software/autoconf/manual/autoconf.html#Runtime

Quoted 27 lines
Quoted 16 lines

Fixes:
http://autobuild.buildroot.net/results/21a/21a6eeddbf5ccffc34c38527d0807305a5eb3917/
http://autobuild.buildroot.net/results/fc0/fc01921e8e8e1ea100461b29137c4219e6686c58/
http://autobuild.buildroot.net/results/962/96285d154abd65838ff5c66e96db309d9ac26c80/

---
 package/ltp-testsuite/ltp-testsuite.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/ltp-testsuite/ltp-testsuite.mk +0 -0
index 87854568d8a6..28dc24749ec8 100644

package/ltp-testsuite/ltp-testsuite.mk LTP_TESTSUITE_CONF_ENV += \ · line 63

Quoted 9 lines
package/ltp-testsuite/ltp-testsuite.mk +2 -1
@@ -56,7 +56,8 @@ LTP_TESTSUITE_CONF_ENV += \
 	CFLAGS="$(LTP_TESTSUITE_CFLAGS)" \
 	CPPFLAGS="$(LTP_TESTSUITE_CPPFLAGS)" \
 	LIBS="$(LTP_TESTSUITE_LIBS)" \
-	SYSROOT="$(STAGING_DIR)"
+	SYSROOT="$(STAGING_DIR)" \
+	have_numa_headers=no
 
 # Requires uClibc fts and bessel support, normally not enabled
 ifeq ($(BR2_TOOLCHAIN_USES_UCLIBC),y)
Signature · 3 lines
     http://baruch.siach.name/blog/                  ~. .~   Tk Open Systems
=}------------------------------------------------ooO--U--Ooo------------{=
   - baruch at tkos.co.il - tel: +972.52.368.4656, http://www.tkos.co.il -
#9 lore raw

PATCH 1/2 ltp-testsuite: disable numa tests

Hi Baruch,

Quoted 11 lines
Quoted 4 lines

As I understand this is about cross compilation, which is inherently incompatible with AC_RUN_IFELSE[1].

Quoted 1 line

Any idea how to fix it in upstream?

Thinking about this a little more, I think you can make the test into a compile time test instead of run-time with something like:

#if LIBNUMA_API_VERSION < 2
#error libnuma API version too old
#endif

No, we had it, but we change it to the current state. as we want to check for presence of libnuma.so as well during build, as there is LTP library which is linked statically. I know, this is very unusual, but that's how was LTP designed.

Quoted 1 line

baruch

Kind regards,
Petr

[1] https://www.gnu.org/software/autoconf/manual/autoconf.html#Runtime

#10 lore raw

PATCH 1/2 ltp-testsuite: disable numa tests

In reply to Baruch Siach

Hi Baruch,

Quoted 9 lines · Petr Vorel
Quoted 5 lines

Hi Baruch,

Quoted 3 lines

The LTP_CHECK_SYSCALL_NUMA autoconf macro uses AC_RUN_IFELSE when it detects the numaif.h header. This is incompatible with cross compilation.

Is it really about cross compilation or about out-of-tree building?

As I understand this is about cross compilation, which is inherently incompatible with AC_RUN_IFELSE[1].

OK, doc really warn about using AC_RUN_IFELSE while cross compiling.

Quoted 11 lines
Quoted 10 lines

Any idea how to fix it in upstream? As we test both cross compilation and out out-of-tree compilation with travis:
https://travis-ci.org/linux-test-project/ltp/builds/333338092

* aarch64 cross compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338103
* arm cross compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338102
* native out-of-tree compilation
https://travis-ci.org/linux-test-project/ltp/jobs/333338101

Quoted 3 lines

Do you nave libnuma (numactl) installed in these tests? If not, the AC_RUN_IFELSE test is skipped. You can reproduce this build failure in Buildroot by first building the numactl package, and then ltp-testsuite.

In the third one [2] there is libnuma installed (ibnuma-dev package, so configure works:
/* Define to 1 if you have libnuma and it's headers version >= 2 installed. */ #define HAVE_NUMA_V2 1
The other two don't.
But all these 3 cross compile builds are build in-tree.
I tested to build cross compile out tree in our project and it's really broken. Thanks for a bug report, I'll fix it.

Kind regards,
Petr

Quoted 1 line

[1] https://www.gnu.org/software/autoconf/manual/autoconf.html#Runtime

[2] https://api.travis-ci.org/v3/job/333338101/log.txt

#11 lore raw

PATCH 1/2 ltp-testsuite: disable numa tests

In reply to Baruch Siach
Quoted 22 lines
Quoted 1 line
Quoted 1 line
Quoted 1 line
Quoted 1 line

"Baruch" == Baruch Siach <[email protected]> writes:

The LTP_CHECK_SYSCALL_NUMA autoconf macro uses AC_RUN_IFELSE when it detects the numaif.h header. This is incompatible with cross compilation.

Fixes:
http://autobuild.buildroot.net/results/21a/21a6eeddbf5ccffc34c38527d0807305a5eb3917/
http://autobuild.buildroot.net/results/fc0/fc01921e8e8e1ea100461b29137c4219e6686c58/
http://autobuild.buildroot.net/results/962/96285d154abd65838ff5c66e96db309d9ac26c80/

---
 package/ltp-testsuite/ltp-testsuite.mk | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)
package/ltp-testsuite/ltp-testsuite.mk +0 -0
index 87854568d8a6..28dc24749ec8 100644

package/ltp-testsuite/ltp-testsuite.mk LTP_TESTSUITE_CONF_ENV += \ · line 60

Quoted 6 lines
package/ltp-testsuite/ltp-testsuite.mk +2 -1
@@ -56,7 +56,8 @@ LTP_TESTSUITE_CONF_ENV += \
 	CFLAGS="$(LTP_TESTSUITE_CFLAGS)" \
 	CPPFLAGS="$(LTP_TESTSUITE_CPPFLAGS)" \
 	LIBS="$(LTP_TESTSUITE_LIBS)" \
-	SYSROOT="$(STAGING_DIR)"
+	SYSROOT="$(STAGING_DIR)" \
+	have_numa_headers=no

Committed, thanks.

We can re-enable it again once it gets fixed upstream.

Signature · 1 line
Bye, Peter Korsgaard