From: Shaun Tancheff Date: Fri, 27 Oct 2023 18:47:58 +0000 (-0500) Subject: LU-17233 dkms: support for kfilnd and gnilnd X-Git-Url: https://git.whamcloud.com/?a=commitdiff_plain;h=refs%2Fchanges%2F56%2F52856%2F3;p=fs%2Flustre-release.git LU-17233 dkms: support for kfilnd and gnilnd dkms should try to build build kkfilnd if kfi support is detected. Similarly kgnilnd can be built if perquisites can be found. HPE-bug-id: LUS-11893, LUS-11902 Signed-off-by: Shaun Tancheff Change-Id: Ie4b0957e7a0eda4f25ae96a12619baae6d6d170a --- diff --git a/lustre-dkms_post-build.sh b/lustre-dkms_post-build.sh index a2f785d..bd4f788 100755 --- a/lustre-dkms_post-build.sh +++ b/lustre-dkms_post-build.sh @@ -17,6 +17,7 @@ # $5 : $arch # $6 : $source_tree # $7 : $dkms_tree +# $8 : $kmoddir # # This script ensure that ALL Lustre kernel modules that have been built # during DKMS build step of lustre[-client]-dkms module will be moved in diff --git a/lustre-dkms_pre-build.sh b/lustre-dkms_pre-build.sh index ce298cb..330e498 100755 --- a/lustre-dkms_pre-build.sh +++ b/lustre-dkms_pre-build.sh @@ -17,12 +17,33 @@ # $5 : $arch # $6 : $source_tree # $7 : $dkms_tree -# +# $8 : $kmoddir [lustre-client either 'extra|updates'] case $1 in lustre-client) - SERVER="--disable-server" - KERNEL_STUFF="" + SERVER="--disable-server --enable-client" + ksrc="$(dirname $4)/source" + KERNEL_STUFF="--with-linux=$(realpath $ksrc) --with-linux-obj=$(realpath $4)" + name=$1 + kmoddir=$8 + flavor=$(echo $3 | tr '-' '\n' | tail -1) + if [ -f /usr/src/kfabric/${flavor}/Module.symvers ]; then + KERNEL_STUFF="${KERNEL_STUFF} --with-kfi=/usr/src/kfabric/${flavor}" + elif [ -f /usr/src/kfabric/default/Module.symvers ]; then + KERNEL_STUFF="${KERNEL_STUFF} --with-kfi=/usr/src/kfabric/default" + fi + if [ -d /usr/src/ofa_kernel/${flavor} ]; then + O2IBPATH=/usr/src/ofa_kernel/${flavor} + elif [ -d /usr/src/ofa_kernel/default ]; then + O2IBPATH=/usr/src/ofa_kernel/default + else + O2IBPATH=yes + fi + KERNEL_STUFF="${KERNEL_STUFF} --with-o2ib=${O2IBPATH}" + if [ -n ${kmoddir} ]; then + KERNEL_STUFF="${KERNEL_STUFF} --with-kmp-moddir=${kmoddir}/${name}" + fi + sh ./autogen.sh ;; lustre-zfs|lustre-all) diff --git a/lustre/scripts/dkms.mkconf b/lustre/scripts/dkms.mkconf index 705b8ef..54f0d5e 100755 --- a/lustre/scripts/dkms.mkconf +++ b/lustre/scripts/dkms.mkconf @@ -25,10 +25,10 @@ PACKAGE_CONFIG="/etc/sysconfig/lustre" # re-evaluate/create dkms.conf on-target based on local build-time products/dependencies # (like krb5-devel presence) and also upon configure results/errors before dkms builds PRE_BUILD="lustre-dkms_pre-build.sh \$module \$module_version \$kernelver \$kernel_source_dir \ - \$arch \$source_tree \$dkms_tree" + \$arch \$source_tree \$dkms_tree \$kmoddir" # to ensure all just built Lustre kernel modules will be saved for further install POST_BUILD="lustre-dkms_post-build.sh \$module \$module_version \$kernelver \$kernel_source_dir \ - \$arch \$source_tree \$dkms_tree" + \$arch \$source_tree \$dkms_tree \$kmoddir" EOF if [ $pkgname = "lustre-zfs" -o $pkgname = "lustre-all" ] ; then cat >>${filename} < /dev/null 2>&1 +if [ \$? -eq 0 ] ; then + BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="kgnilnd" + BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/gnilnd/" + DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/" +fi BUILT_MODULE_NAME[\${#BUILT_MODULE_NAME[@]}]="ko2iblnd" BUILT_MODULE_LOCATION[\${#BUILT_MODULE_LOCATION[@]}]="lnet/klnds/o2iblnd/" DEST_MODULE_LOCATION[\${#DEST_MODULE_LOCATION[@]}]="/${kmoddir}/lnet/"