echo " RTE_SDK exported as $RTE_SDK"
echo "------------------------------------------------------------------------------"
+HUGEPGSZ=`cat /proc/meminfo | grep Hugepagesize | cut -d : -f 2 | tr -d ' '`
+
#
# Application EAL parameters for setting memory options (amount/channels/ranks).
#
QUIT=$1
}
+# Shortcut for quit.
+q()
+{
+ quit
+}
+
#
# Sets up environmental variables for ICC.
#
echo "------------------------------------------------------------------------------"
}
-#
-# Uninstall all targets.
-#
-uninstall_targets()
-{
- make uninstall
-}
-
#
# Creates hugepage filesystem.
#
{
echo > .echo_tmp
for d in /sys/devices/system/node/node? ; do
- echo "echo 0 > $d/hugepages/hugepages-2048kB/nr_hugepages" >> .echo_tmp
+ echo "echo 0 > $d/hugepages/hugepages-${HUGEPGSZ}/nr_hugepages" >> .echo_tmp
done
echo "Removing currently reserved hugepages"
sudo sh .echo_tmp
clear_huge_pages
echo ""
- echo " Input the number of 2MB pages"
- echo " Example: to have 128MB of hugepages available, enter '64' to"
- echo " reserve 64 * 2MB pages"
+ echo " Input the number of ${HUGEPGSZ} hugepages"
+ echo " Example: to have 128MB of hugepages available in a 2MB huge page system,"
+ echo " enter '64' to reserve 64 * 2MB pages"
echo -n "Number of pages: "
read Pages
- echo "echo $Pages > /sys/kernel/mm/hugepages/hugepages-2048kB/nr_hugepages" > .echo_tmp
+ echo "echo $Pages > /sys/kernel/mm/hugepages/hugepages-${HUGEPGSZ}/nr_hugepages" > .echo_tmp
echo "Reserving hugepages"
sudo sh .echo_tmp
clear_huge_pages
echo ""
- echo " Input the number of 2MB pages for each node"
- echo " Example: to have 128MB of hugepages available per node,"
+ echo " Input the number of ${HUGEPGSZ} hugepages for each node"
+ echo " Example: to have 128MB of hugepages available per node in a 2MB huge page system,"
echo " enter '64' to reserve 64 * 2MB pages on each node"
echo > .echo_tmp
node=$(basename $d)
echo -n "Number of pages for $node: "
read Pages
- echo "echo $Pages > $d/hugepages/hugepages-2048kB/nr_hugepages" >> .echo_tmp
+ echo "echo $Pages > $d/hugepages/hugepages-${HUGEPGSZ}/nr_hugepages" >> .echo_tmp
done
echo "Reserving hugepages"
sudo sh .echo_tmp
#
show_nics()
{
- if /sbin/lsmod | grep -q igb_uio ; then
+ if [ -d /sys/module/vfio_pci -o -d /sys/module/igb_uio ]; then
${RTE_SDK}/tools/dpdk_nic_bind.py --status
else
- echo "# Please load the 'igb_uio' kernel module before querying or "
- echo "# adjusting NIC device bindings"
+ echo "# Please load the 'igb_uio' or 'vfio-pci' kernel module before "
+ echo "# querying or adjusting NIC device bindings"
fi
}
#
-# Uses dpdk_nic_bind.py to move devices to work with igb_uio
+# Uses dpdk_nic_bind.py to move devices to work with vfio-pci
#
bind_nics_to_vfio()
{
- if /sbin/lsmod | grep -q vfio_pci ; then
+ if [ -d /sys/module/vfio_pci ]; then
${RTE_SDK}/tools/dpdk_nic_bind.py --status
echo ""
echo -n "Enter PCI address of device to bind to VFIO driver: "
#
bind_nics_to_igb_uio()
{
- if /sbin/lsmod | grep -q igb_uio ; then
+ if [ -d /sys/module/igb_uio ]; then
${RTE_SDK}/tools/dpdk_nic_bind.py --status
echo ""
echo -n "Enter PCI address of device to bind to IGB UIO driver: "
{
${RTE_SDK}/tools/dpdk_nic_bind.py --status
echo ""
- echo -n "Enter PCI address of device to bind to IGB UIO driver: "
+ echo -n "Enter PCI address of device to unbind: "
read PCI_PATH
echo ""
echo -n "Enter name of kernel driver to bind the device to: "
{
TITLE="Uninstall and system cleanup"
- TEXT[1]="Uninstall all targets"
- FUNC[1]="uninstall_targets"
-
- TEXT[2]="Unbind NICs from IGB UIO driver"
- FUNC[2]="unbind_nics"
+ TEXT[1]="Unbind NICs from IGB UIO or VFIO driver"
+ FUNC[1]="unbind_nics"
- TEXT[3]="Remove IGB UIO module"
- FUNC[3]="remove_igb_uio_module"
+ TEXT[2]="Remove IGB UIO module"
+ FUNC[2]="remove_igb_uio_module"
- TEXT[4]="Remove VFIO module"
- FUNC[4]="remove_vfio_module"
+ TEXT[3]="Remove VFIO module"
+ FUNC[3]="remove_vfio_module"
- TEXT[5]="Remove KNI module"
- FUNC[5]="remove_kni_module"
+ TEXT[4]="Remove KNI module"
+ FUNC[4]="remove_kni_module"
- TEXT[6]="Remove hugepage mappings"
- FUNC[6]="clear_huge_pages"
+ TEXT[5]="Remove hugepage mappings"
+ FUNC[5]="clear_huge_pages"
}
STEPS[1]="step1_func"
read our_entry
echo ""
${OPTIONS[our_entry]} ${our_entry}
- echo
- echo -n "Press enter to continue ..."; read
+
+ if [ "$QUIT" == "0" ] ; then
+ echo
+ echo -n "Press enter to continue ..."; read
+ fi
+
done