aboutsummaryrefslogtreecommitdiffstats
path: root/vespabase
diff options
context:
space:
mode:
authorArnstein Ressem <aressem@gmail.com>2021-08-23 09:23:21 +0200
committerGitHub <noreply@github.com>2021-08-23 09:23:21 +0200
commit0ea783747646f0433480983f2e084632e0eb421c (patch)
tree9d5c481d38c1b13670afe683382a58ef40cd7962 /vespabase
parent44bdbb1067d3fa0a699d8ccf63369e3fa199f76a (diff)
Revert "Revert "Reapply "Fail Vespa startup if no numactl ."""
Diffstat (limited to 'vespabase')
-rwxr-xr-xvespabase/src/common-env.sh27
-rwxr-xr-xvespabase/src/start-cbinaries.sh18
2 files changed, 28 insertions, 17 deletions
diff --git a/vespabase/src/common-env.sh b/vespabase/src/common-env.sh
index eb60154071c..d5f8381432f 100755
--- a/vespabase/src/common-env.sh
+++ b/vespabase/src/common-env.sh
@@ -292,3 +292,30 @@ log_debug_message () {
log_warning_message () {
log_message "warning" "$*" 1>&2
}
+
+get_numa_ctl_cmd () {
+ if ! type numactl &> /dev/null; then
+ echo "FATAL: Could not find required program numactl."
+ exit 1
+ fi
+
+ numnodes=$(numactl --hardware 2>/dev/null |
+ grep available |
+ awk '$3 == "nodes" { print $2 }')
+
+ if [ -n "$numanodes" ]; then
+ # We are allowed to use numactl and have NUMA nodes
+ if [ "$VESPA_AFFINITY_CPU_SOCKET" ] &&
+ [ "$numnodes" -gt 1 ]
+ then
+ node=$(($VESPA_AFFINITY_CPU_SOCKET % $numnodes))
+ numactlcmd="numactl --cpunodebind=$node --membind=$node"
+ else
+ numactlcmd="numactl --interleave all"
+ fi
+ else
+ numactlcmd=""
+ fi
+
+ echo $numactlcmd
+}
diff --git a/vespabase/src/start-cbinaries.sh b/vespabase/src/start-cbinaries.sh
index f17829aa081..1ef45a71dec 100755
--- a/vespabase/src/start-cbinaries.sh
+++ b/vespabase/src/start-cbinaries.sh
@@ -163,29 +163,13 @@ configure_vespa_malloc () {
fi
}
-configure_numa_ctl () {
- numactl=""
- if numactl --interleave all true &> /dev/null; then
- # We are allowed to use numactl
- numactl="numactl --interleave all"
- if [ "$VESPA_AFFINITY_CPU_SOCKET" ]; then
- numcpu=`numactl --hardware 2>/dev/null | grep available | cut -d' ' -f2`
- if [ "$numcpu" ] && [ "$numcpu" -gt 1 ]; then
- log_debug_message "Starting $0 with affinity $VESPA_AFFINITY_CPU_SOCKET out of $numcpu"
- node=$(($VESPA_AFFINITY_CPU_SOCKET % $numcpu))
- numactl="numactl --cpunodebind=$node --membind=$node"
- fi
- fi
- fi
-}
-
configure_valgrind
configure_huge_pages
configure_use_madvise
configure_vespa_malloc
if $no_valgrind ; then
- configure_numa_ctl
+ numactl=$(get_numa_ctl_cmd)
ulimit -c unlimited
log_debug_message "Starting $0 with : " \
$numactl env LD_PRELOAD=$LD_PRELOAD $0-bin "$@"