summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLuc Provoost <luc.provoost@intel.com>2021-05-10 10:06:30 +0200
committerLuc Provoost <luc.provoost@intel.com>2021-05-10 08:41:09 +0000
commit894f62216ca3c97ef0c1c09b9475459b9324b1bb (patch)
treee80c592a83e49f87dc98612a3400103b07d2a346
parent1492024f49f6952fb9f99ac70d0ae1c26fb946ad (diff)
Reinstate installation of igb_uio
For good performance on some platforms, we need the igb_uio driver. With this change, the driver is compiled and insmod done during boot time. When running the rapid scripts, the devbind.sh script is sent to the instances (after replacing the string "MACADDRESS"). Make sure you uncomment the proper line to chose which driver you want to use. Change-Id: I69549400a97f29e06add6ab44515e96ffa9ce0e8 Signed-off-by: Luc Provoost <luc.provoost@intel.com>
-rwxr-xr-xVNFs/DPPD-PROX/helper-scripts/rapid/check_prox_system_setup.sh6
-rwxr-xr-xVNFs/DPPD-PROX/helper-scripts/rapid/devbind.sh4
-rwxr-xr-xrapidvm/dib/elements/rapid/post-install.d/50-compile-dpdk4
3 files changed, 12 insertions, 2 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
index 834554dc..3cf1113d 100755
--- a/VNFs/DPPD-PROX/helper-scripts/rapid/check_prox_system_setup.sh
+++ b/VNFs/DPPD-PROX/helper-scripts/rapid/check_prox_system_setup.sh
@@ -52,6 +52,12 @@ then
## 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=*)
diff --git a/VNFs/DPPD-PROX/helper-scripts/rapid/devbind.sh b/VNFs/DPPD-PROX/helper-scripts/rapid/devbind.sh
index fe7a5d4f..0bde3cc2 100755
--- a/VNFs/DPPD-PROX/helper-scripts/rapid/devbind.sh
+++ b/VNFs/DPPD-PROX/helper-scripts/rapid/devbind.sh
@@ -2,9 +2,11 @@ link="$(sudo ip -o link | grep MACADDRESS |cut -d":" -f 2)"
if [ -n "$link" ];
then
echo Need to bind
+ # Uncomment one of the following lines, depending on which driver
+ # you want to use: vfio-pci or igb_uio
#sudo /opt/rapid/dpdk/usertools/dpdk-devbind.py --force --bind igb_uio $(sudo /opt/rapid/dpdk/usertools/dpdk-devbind.py --status |grep $link | cut -d" " -f 1)
sudo driverctl set-override $(sudo ethtool -i $link |grep bus-info | cut -d" " -f 2) vfio-pci
else
- echo Assuming port is already bound to vfio-pci
+ echo Assuming port is already bound to DPDK poll mode driver
fi
exit 0
diff --git a/rapidvm/dib/elements/rapid/post-install.d/50-compile-dpdk b/rapidvm/dib/elements/rapid/post-install.d/50-compile-dpdk
index 38d07486..6a7fdf36 100755
--- a/rapidvm/dib/elements/rapid/post-install.d/50-compile-dpdk
+++ b/rapidvm/dib/elements/rapid/post-install.d/50-compile-dpdk
@@ -24,7 +24,9 @@ export RTE_KERNELDIR="/lib/modules/${LATEST_KERNEL_INSTALLED}/build"
pushd ${RTE_SDK} > /dev/null 2>&1
make config T=${RTE_TARGET}
-#sed -i 's/CONFIG_RTE_EAL_IGB_UIO=n/CONFIG_RTE_EAL_IGB_UIO=y/g' ${RTE_SDK}/build/.config
+# Starting from DPDK 20.05, the IGB_UIO driver is not compiled by default.
+# Uncomment the sed command to enable the driver compilation
+sed -i 's/CONFIG_RTE_EAL_IGB_UIO=n/CONFIG_RTE_EAL_IGB_UIO=y/g' ${RTE_SDK}/build/.config
#sed -i 's/CONFIG_RTE_LIBRTE_PMD_AESNI_MB=n/CONFIG_RTE_LIBRTE_PMD_AESNI_MB=y/g' ${RTE_SDK}/build/.config
sed -i 's/CONFIG_RTE_APP_TEST=y/CONFIG_RTE_APP_TEST=n/g' ${RTE_SDK}/build/.config
sed -i 's/CONFIG_RTE_TEST_PMD=y/CONFIG_RTE_TEST_PMD=n/g' ${RTE_SDK}/build/.config