mirror of
https://github.com/xcat2/xcat-core.git
synced 2025-06-21 21:45:31 +00:00
Merge pull request #5062 from cxhong/enablecapi
Add postscript to enable CAPI mode for mlnxofed
This commit is contained in:
85
xCAT/postscripts/enablecapi
Normal file
85
xCAT/postscripts/enablecapi
Normal file
@ -0,0 +1,85 @@
|
||||
#!/bin/bash
|
||||
|
||||
if [ "$(uname -s|tr 'A-Z' 'a-z')" = "linux" ];then
|
||||
str_dir_name=`dirname $0`
|
||||
. $str_dir_name/xcatlib.sh
|
||||
fi
|
||||
|
||||
#---------------------------------------------------------------------------
|
||||
#=head1 enablecapi
|
||||
#=head2 enable CAPI and tunnel Atomics for compute nodes
|
||||
# at least MOFED 4.3.1 has to be installed and only support on ConnectX5
|
||||
#
|
||||
# updatenode <node> enablecapi
|
||||
#
|
||||
#---------------------------------------------------------------------------
|
||||
|
||||
function logerr {
|
||||
echo "$@"
|
||||
logger -t xcat -p local4.err $@
|
||||
}
|
||||
|
||||
|
||||
#check if mlnx ofed commands are installed
|
||||
COMMANDS="ofed_info mst mlxconfig"
|
||||
for CMD in ${COMMANDS}; do
|
||||
RC=`command -v ${CMD} >> /dev/nul 2>&1; echo $?`
|
||||
if [[ ${RC} != 0 ]]; then
|
||||
ERRMSG="Command: ${CMD} is not found, unable to run the scripts"
|
||||
logerr $ERRMSG
|
||||
exit 1
|
||||
fi
|
||||
done
|
||||
|
||||
#mofed version at least 4.3-1
|
||||
version=`/usr/bin/ofed_info -n`
|
||||
majorversion=`echo $version | cut -d- -f1`
|
||||
minorversion=`echo $version | cut -d- -f2`
|
||||
if (( $(echo "$majorversion < 4.3" |bc -l) )); then
|
||||
ERRMSG="Current MOFED version is $version and needs to be at least 4.3-1"
|
||||
logerr $ERRMSG
|
||||
exit 1
|
||||
fi
|
||||
if (( $(echo "$majorversion == 4.3" |bc -l) )); then
|
||||
minor=`echo $minorversion | cut -d. -f1`
|
||||
if (( $(echo "$minor < 1") )); then
|
||||
ERRMSG="Current MOFED version is $version and needs to be at least 4.3-1"
|
||||
logerr $ERRMSG
|
||||
exit 1
|
||||
fi
|
||||
fi
|
||||
|
||||
service mst restart >/dev/null 2>&1
|
||||
if [ "$?" != "0" ] ;then
|
||||
ERRMSG "[Error] failed to start mst."
|
||||
logerr $ERRMSG
|
||||
exit 1
|
||||
fi
|
||||
|
||||
reboot_flag=0
|
||||
|
||||
for x in `ls /dev/mst/mt*`
|
||||
do
|
||||
mlxconfig -y -d $x q | grep 'ConnectX5' >/dev/null 2>&1
|
||||
if [ $? == 0 ]; then
|
||||
mlxconfig -y -d $x set ADVANCED_PCI_SETTINGS=true >/dev/null 2>&1
|
||||
mlxconfig -y -d $x set IBM_CAPI_EN=true >/dev/null 2>&1
|
||||
mlxconfig -y -d $x set IBM_TUNNELED_ATOMIC_EN=true >/dev/null 2>&1
|
||||
mlxconfig -y -d $x set IBM_AS_NOTIFY_EN=true >/dev/null 2>&1
|
||||
echo "Apply new Configuration for $x:"
|
||||
mlxconfig -y -d $x q | grep 'IBM'
|
||||
reboot_flag=1
|
||||
fi
|
||||
done
|
||||
|
||||
if [[ $reboot_flag == 0 ]]; then
|
||||
echo "Didn't find ConnectX5 Devices, will not apply the new configuration"
|
||||
else
|
||||
echo "******************************************************"
|
||||
echo " New configuration applied"
|
||||
echo " Please reboot system to load new configurations"
|
||||
echo "******************************************************"
|
||||
fi
|
||||
|
||||
exit 0
|
||||
|
Reference in New Issue
Block a user