scripts/setup.sh: add cleanup command
From now on remove any SPDK artifacts just use: ./scripts/setup.sh cleanup Fixes #302 Change-Id: I5ebe522fecfcb8a867a96ab10bacda6083c8c224 Signed-off-by: Pawel Wodkowski <pawelx.wodkowski@intel.com> Reviewed-on: https://review.gerrithub.io/419575 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Chandler-Test-Pool: SPDK Automated Test System <sys_sgsw@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com> Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
parent
1f5c8233da
commit
e47f972dff
@ -8,7 +8,7 @@ source "$rootdir/scripts/common.sh"
|
|||||||
function usage()
|
function usage()
|
||||||
{
|
{
|
||||||
if [ `uname` = Linux ]; then
|
if [ `uname` = Linux ]; then
|
||||||
options="[config|reset|status|help]"
|
options="[config|reset|status|cleanup|help]"
|
||||||
else
|
else
|
||||||
options="[config|reset|help]"
|
options="[config|reset|help]"
|
||||||
fi
|
fi
|
||||||
@ -22,6 +22,9 @@ function usage()
|
|||||||
echo
|
echo
|
||||||
echo "$options - as following:"
|
echo "$options - as following:"
|
||||||
echo "config Default mode. Allocate hugepages and bind PCI devices."
|
echo "config Default mode. Allocate hugepages and bind PCI devices."
|
||||||
|
if [ `uname` = Linux ]; then
|
||||||
|
echo "cleanup Remove any orphaned files that can be left in the system after SPDK application exit"
|
||||||
|
fi
|
||||||
echo "reset Rebind PCI devices back to their original drivers."
|
echo "reset Rebind PCI devices back to their original drivers."
|
||||||
echo " Also cleanup any leftover spdk files/resources."
|
echo " Also cleanup any leftover spdk files/resources."
|
||||||
echo " Hugepage memory size will remain unchanged."
|
echo " Hugepage memory size will remain unchanged."
|
||||||
@ -234,6 +237,39 @@ function configure_linux_pci {
|
|||||||
echo "1" > "/sys/bus/pci/rescan"
|
echo "1" > "/sys/bus/pci/rescan"
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function cleanup_linux {
|
||||||
|
files_to_clean="$(echo /dev/shm/* | egrep '(spdk_tgt|iscsi|vhost|nvmf|rocksdb)_trace|spdk_iscsi_conns' || true)"
|
||||||
|
files_to_clean="$(readlink -e assert_not_empty $files_to_clean || true)"
|
||||||
|
if [[ -z "$files_to_clean" ]]; then
|
||||||
|
echo "Clean"
|
||||||
|
return 0;
|
||||||
|
fi
|
||||||
|
|
||||||
|
shopt -s extglob
|
||||||
|
for fd_dir in $(echo /proc/+([0-9])); do
|
||||||
|
opened_files+="$(readlink -e assert_not_empty $fd_dir/fd/* || true)"
|
||||||
|
done
|
||||||
|
shopt -u extglob
|
||||||
|
|
||||||
|
if [[ -z "$opened_files" ]]; then
|
||||||
|
echo "Can't get list of opened files!"
|
||||||
|
exit 1
|
||||||
|
fi
|
||||||
|
|
||||||
|
echo 'Cleaning'
|
||||||
|
for f in $files_to_clean; do
|
||||||
|
if ! echo "$opened_files" | egrep -q "^$f\$"; then
|
||||||
|
echo "Removing: $f"
|
||||||
|
rm $f
|
||||||
|
else
|
||||||
|
echo "Still open: $f"
|
||||||
|
fi
|
||||||
|
done
|
||||||
|
echo "Clean"
|
||||||
|
|
||||||
|
unset files_to_clean opened_files
|
||||||
|
}
|
||||||
|
|
||||||
function configure_linux {
|
function configure_linux {
|
||||||
configure_linux_pci
|
configure_linux_pci
|
||||||
hugetlbfs_mounts=$(linux_hugetlbfs_mounts)
|
hugetlbfs_mounts=$(linux_hugetlbfs_mounts)
|
||||||
@ -518,6 +554,8 @@ if [ `uname` = Linux ]; then
|
|||||||
|
|
||||||
if [ "$mode" == "config" ]; then
|
if [ "$mode" == "config" ]; then
|
||||||
configure_linux
|
configure_linux
|
||||||
|
elif [ "$mode" == "cleanup" ]; then
|
||||||
|
cleanup_linux
|
||||||
elif [ "$mode" == "reset" ]; then
|
elif [ "$mode" == "reset" ]; then
|
||||||
reset_linux
|
reset_linux
|
||||||
elif [ "$mode" == "status" ]; then
|
elif [ "$mode" == "status" ]; then
|
||||||
|
Loading…
Reference in New Issue
Block a user