diff options
Diffstat (limited to 'VNFs/DPPD-PROX/helper-scripts/rapid/check_prox_system_setup.sh')
-rwxr-xr-x | VNFs/DPPD-PROX/helper-scripts/rapid/check_prox_system_setup.sh | 78 |
1 files changed, 78 insertions, 0 deletions
diff --git a/VNFs/DPPD-PROX/helper-scripts/rapid/check_prox_system_setup.sh b/VNFs/DPPD-PROX/helper-scripts/rapid/check_prox_system_setup.sh new file mode 100755 index 00000000..3cf1113d --- /dev/null +++ b/VNFs/DPPD-PROX/helper-scripts/rapid/check_prox_system_setup.sh @@ -0,0 +1,78 @@ +#!/usr/bin/env bash +## +## Copyright (c) 2010-2021 Intel Corporation +## +## Licensed under the Apache License, Version 2.0 (the "License"); +## you may not use this file except in compliance with the License. +## You may obtain a copy of the License at +## +## http://www.apache.org/licenses/LICENSE-2.0 +## +## Unless required by applicable law or agreed to in writing, software +## distributed under the License is distributed on an "AS IS" BASIS, +## WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. +## See the License for the specific language governing permissions and +## limitations under the License. +## +## This script should run after booting: see check-prox-system-setup.service + +NCPUS="$(lscpu | egrep '^CPU\(s\):' | awk '{ print $2 }')" +MAXCOREID="$((NCPUS-1))" + +tuned_config="/etc/tuned/realtime-virtual-guest-variables.conf" +log_file="/opt/rapid/prox_system_setup.log" +system_ready="/opt/rapid/system_ready_for_rapid" +tuned_done="/opt/rapid/tuned_done" +after_boot_file="/opt/rapid/after_boot.sh" + +tuned_and_reboot () { + echo "Applying tuned profile">>$log_file + tuned-adm profile realtime-virtual-guest + touch "$tuned_done" + echo "Rebooting...">>$log_file + reboot + exit 0 +} + +if [ -f "$tuned_config" ] +then + while read -r line + do + case $line in + isolated_cores=1-$MAXCOREID*) + if test ! -f "$tuned_done"; then + tuned_and_reboot + fi + if test -f "$after_boot_file"; then + echo "Executing: $after_boot_file">>$log_file + ("$after_boot_file") + fi + echo "Isolated CPU(s) OK, no reboot: $line">>$log_file + ## rapid scripts will wait for the system_ready file to exist + ## Only then, they will be able to connect to the PROX instance + ## and start the testing + touch "$system_ready" + ## On some systems, we still need to use the igb_uio driver. + ## Example: good performance on AWS with the ENA interface. + ## Make sure that you change devbind.sh to use the preferred + ## driver. vfio is the default. + modprobe uio + insmod /opt/rapid/dpdk/build/kmod/igb_uio.ko wc_activate=1 + exit 0 + ;; + isolated_cores=*) + echo "Isolated CPU(s) NOK: $line">>$log_file + sed -i "/^isolated_cores=.*/c\isolated_cores=1-$MAXCOREID" $tuned_config + tuned_and_reboot + ;; + *) + echo "$line" + ;; + esac + done < "$tuned_config" + echo "isolated_cores=1-$MAXCOREID" >> $tuned_config + echo "No Isolated CPU(s) defined in config, line added: isolated_cores=1-$MAXCOREID">>$log_file + tuned_and_reboot +else + echo "$tuned_config not found.">>$log_file +fi |