* [dpdk-dev] [PATCH] app/test: fix dependency on file in /sys
@ 2020-01-20 12:22 Bruce Richardson
2020-01-20 15:29 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
0 siblings, 1 reply; 2+ messages in thread
From: Bruce Richardson @ 2020-01-20 12:22 UTC (permalink / raw)
To: dev, thomas; +Cc: Bruce Richardson, aconole, stable
Meson versions 0.52 and 0.53 are being overly smart and detecting the path
"/sys/devices/system/cpu/present" in the call to cat in
app/test/meson.build and then adding it as a dependency to the build
configuration. This causes issues on systems where the timestamp of that
file always returns the current time, since it means that the build.ninja
file is always out of date, and therefore needs to be rebuilt.
We can fix this by just using a simple shell script to return the coremask
appropriately for BSD and Linux, and removing that code logic from meson -
thereby hiding the use of the /sys file.
Fixes: c70622ac6f72 ("test: detect number of cores with meson")
Cc: aconole@redhat.com
Cc: stable@dpdk.org
Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
---
app/test/get-coremask.sh | 13 +++++++++++++
app/test/meson.build | 16 ++--------------
2 files changed, 15 insertions(+), 14 deletions(-)
create mode 100755 app/test/get-coremask.sh
diff --git a/app/test/get-coremask.sh b/app/test/get-coremask.sh
new file mode 100755
index 000000000..0bb61c858
--- /dev/null
+++ b/app/test/get-coremask.sh
@@ -0,0 +1,13 @@
+#! /bin/sh -e
+# SPDX-License-Identifier: BSD-3-Clause
+# Copyright(c) 2019 Intel Corporation
+
+if [ "$(uname)" = "Linux" ] ; then
+ cat /sys/devices/system/cpu/present
+elif [ "$(uname)" = "FreeBSD" ] ; then
+ ncpus=$(/sbin/sysctl -n hw.ncpu)
+ echo 0-$(expr $ncpus - 1)
+else
+# fallback
+ echo 0-3
+fi
diff --git a/app/test/meson.build b/app/test/meson.build
index fb49d804b..22b0cefaa 100644
--- a/app/test/meson.build
+++ b/app/test/meson.build
@@ -398,20 +398,8 @@ dpdk_test = executable('dpdk-test',
timeout_seconds = 600
timeout_seconds_fast = 10
-# Retrieve the number of CPU cores, defaulting to 4.
-num_cores = '0-3'
-if host_machine.system() == 'linux'
- num_cores = run_command('cat',
- '/sys/devices/system/cpu/present'
- ).stdout().strip()
-elif host_machine.system() == 'freebsd'
- snum_cores = run_command('/sbin/sysctl', '-n',
- 'hw.ncpu').stdout().strip()
- inum_cores = snum_cores.to_int() - 1
- num_cores = '0-@0@'.format(inum_cores)
-endif
-
-num_cores_arg = '-l ' + num_cores
+get_coremask = find_program('get-coremask.sh')
+num_cores_arg = '-l ' + run_command(get_coremask).stdout().strip()
test_args = [num_cores_arg]
foreach arg : fast_test_names
--
2.20.1
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [dpdk-dev] [dpdk-stable] [PATCH] app/test: fix dependency on file in /sys
2020-01-20 12:22 [dpdk-dev] [PATCH] app/test: fix dependency on file in /sys Bruce Richardson
@ 2020-01-20 15:29 ` Thomas Monjalon
0 siblings, 0 replies; 2+ messages in thread
From: Thomas Monjalon @ 2020-01-20 15:29 UTC (permalink / raw)
To: Bruce Richardson; +Cc: dev, stable, aconole
20/01/2020 13:22, Bruce Richardson:
> Meson versions 0.52 and 0.53 are being overly smart and detecting the path
> "/sys/devices/system/cpu/present" in the call to cat in
> app/test/meson.build and then adding it as a dependency to the build
> configuration. This causes issues on systems where the timestamp of that
> file always returns the current time, since it means that the build.ninja
> file is always out of date, and therefore needs to be rebuilt.
>
> We can fix this by just using a simple shell script to return the coremask
> appropriately for BSD and Linux, and removing that code logic from meson -
> thereby hiding the use of the /sys file.
>
> Fixes: c70622ac6f72 ("test: detect number of cores with meson")
> Cc: aconole@redhat.com
> Cc: stable@dpdk.org
>
> Signed-off-by: Bruce Richardson <bruce.richardson@intel.com>
Thanks a lot Bruce, meson stops reconfiguring, this is a life changer!
Applied (with new script added in MAINTAINERS), thanks
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2020-01-20 15:29 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2020-01-20 12:22 [dpdk-dev] [PATCH] app/test: fix dependency on file in /sys Bruce Richardson
2020-01-20 15:29 ` [dpdk-dev] [dpdk-stable] " Thomas Monjalon
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).