setup.sh: support multiple hugetlb mountpoints

We used to crash when `mount` returned
multiple hugetlb mountpoints.

Change-Id: I75717c2c394204bdfec730edabb9ff6386047742
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/395926
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
This commit is contained in:
Dariusz Stojaczyk 2018-01-23 14:09:58 +01:00 committed by Jim Harris
parent 4b42897985
commit f8c1c71c2e

View File

@ -105,7 +105,7 @@ function linux_unbind_driver() {
echo "$bdf ($ven_dev_id): $old_driver_name -> no driver" echo "$bdf ($ven_dev_id): $old_driver_name -> no driver"
} }
function linux_hugetlbfs_mount() { function linux_hugetlbfs_mounts() {
mount | grep ' type hugetlbfs ' | awk '{ print $3 }' mount | grep ' type hugetlbfs ' | awk '{ print $3 }'
} }
@ -212,13 +212,13 @@ function configure_linux {
configure_linux_pci configure_linux_pci
fi fi
hugetlbfs_mount=$(linux_hugetlbfs_mount) hugetlbfs_mounts=$(linux_hugetlbfs_mounts)
if [ -z "$hugetlbfs_mount" ]; then if [ -z "$hugetlbfs_mounts" ]; then
hugetlbfs_mount=/mnt/huge hugetlbfs_mounts=/mnt/huge
echo "Mounting hugetlbfs at $hugetlbfs_mount" echo "Mounting hugetlbfs at $hugetlbfs_mounts"
mkdir -p "$hugetlbfs_mount" mkdir -p "$hugetlbfs_mounts"
mount -t hugetlbfs nodev "$hugetlbfs_mount" mount -t hugetlbfs nodev "$hugetlbfs_mounts"
fi fi
if [ -z "$HUGENODE" ]; then if [ -z "$HUGENODE" ]; then
@ -238,8 +238,10 @@ function configure_linux {
if [ "$driver_name" = "vfio-pci" ]; then if [ "$driver_name" = "vfio-pci" ]; then
if [ -n "$TARGET_USER" ]; then if [ -n "$TARGET_USER" ]; then
chown "$TARGET_USER" "$hugetlbfs_mount" for mount in $hugetlbfs_mounts; do
chmod g+w "$hugetlbfs_mount" chown "$TARGET_USER" "$mount"
chmod g+w "$mount"
done
fi fi
MEMLOCK_AMNT=`ulimit -l` MEMLOCK_AMNT=`ulimit -l`
@ -324,8 +326,9 @@ function reset_linux {
reset_linux_pci reset_linux_pci
fi fi
hugetlbfs_mount=$(linux_hugetlbfs_mount) for mount in $(linux_hugetlbfs_mounts); do
rm -f "$hugetlbfs_mount"/spdk*map_* rm -f "$mount"/spdk*map_*
done
rm -f /run/.spdk* rm -f /run/.spdk*
} }