scripts/qat_setup: Make sure the out-of-tree intel_qat driver is in use
Change-Id: I8869b42cd42a1f18cbbde79d59e1a95df9316d4e Signed-off-by: Michal Berger <michalx.berger@intel.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5451 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Tomasz Zawadzki <tomasz.zawadzki@intel.com> Reviewed-by: Karol Latecki <karol.latecki@intel.com> Reviewed-by: Jim Harris <james.r.harris@intel.com>
This commit is contained in:
parent
d495c9b222
commit
fb732cb782
@ -1,9 +1,55 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
shopt -s nullglob
|
||||||
|
|
||||||
rootdir=$(readlink -f $(dirname $0))/..
|
rootdir=$(readlink -f $(dirname $0))/..
|
||||||
igb_driverdir=$rootdir/dpdk/build/build/kernel/igb_uio/
|
igb_driverdir=$rootdir/dpdk/build/build/kernel/igb_uio/
|
||||||
allowed_drivers=("igb_uio" "uio_pci_generic")
|
allowed_drivers=("igb_uio" "uio_pci_generic")
|
||||||
|
|
||||||
|
reload_intel_qat() {
|
||||||
|
# We need to make sure the out-of-tree intel_qat driver, provided via vm_setup.sh, is in
|
||||||
|
# use. Otherwise, some dependency modules loaded by qat_service may fail causing some
|
||||||
|
# disturbance later on during the tests - in particular, it's been seen that the adf_ctl
|
||||||
|
# was returning inconsistent data (wrong pci addresses), confusing the service into
|
||||||
|
# believing SR-IOV is not enabled.
|
||||||
|
|
||||||
|
# If this file doesn't exist, then either intel_qat is a kernel built-in or is not loaded.
|
||||||
|
# Nothing to do in such cases, qat_service will load the module for us.
|
||||||
|
[[ -e /sys/module/intel_qat/taint ]] || return 0
|
||||||
|
|
||||||
|
local t v
|
||||||
|
t=$(< /sys/module/intel_qat/taint)
|
||||||
|
v=$(< /sys/module/intel_qat/version)
|
||||||
|
|
||||||
|
# OE - out-of-tree, unsigned. By the very default, drivers built via vm_setup.sh are not
|
||||||
|
# signed.
|
||||||
|
[[ -z $t || $t != *"OE"* ]] || return 0
|
||||||
|
|
||||||
|
# Check the version of loaded module against the version of the same module as seen
|
||||||
|
# from .dep. perspective. if these are the same the most likely something is broken
|
||||||
|
# with the dependencies. We report a failure in such a case since reloading the module
|
||||||
|
# won't do any good anyway.
|
||||||
|
|
||||||
|
if [[ $(modinfo -F version intel_qat) == "$v" ]]; then
|
||||||
|
cat <<- WARN
|
||||||
|
Upstream intel_qat driver detected. Same version of the driver is seen
|
||||||
|
in modules dependencies: $v. This may mean QAT build didn't update
|
||||||
|
dependencies properly. QAT setup may fail, please, rebuild the QAT
|
||||||
|
driver.
|
||||||
|
WARN
|
||||||
|
return 0
|
||||||
|
fi
|
||||||
|
|
||||||
|
# Ok, intel_qat is an upstream module, replace it with the out-of-tree one.
|
||||||
|
echo "Reloading intel_qat module"
|
||||||
|
|
||||||
|
local h=(/sys/module/intel_qat/holders/*)
|
||||||
|
h=("${h[@]##*/}")
|
||||||
|
|
||||||
|
modprobe -r "${h[@]}" intel_qat
|
||||||
|
# qat_service does that too, but be vigilant
|
||||||
|
modprobe -a intel_qat "${h[@]}"
|
||||||
|
}
|
||||||
|
|
||||||
# This script requires an igb_uio kernel module binary located at $igb_driverdir/igb_uio.ko
|
# This script requires an igb_uio kernel module binary located at $igb_driverdir/igb_uio.ko
|
||||||
# Please also note that this script is not intended to be comprehensive or production quality.
|
# Please also note that this script is not intended to be comprehensive or production quality.
|
||||||
# It supports configuring a single card (the Intel QAT 8970) for use with the SPDK
|
# It supports configuring a single card (the Intel QAT 8970) for use with the SPDK
|
||||||
@ -34,6 +80,8 @@ if $bad_driver; then
|
|||||||
exit 1
|
exit 1
|
||||||
fi
|
fi
|
||||||
|
|
||||||
|
reload_intel_qat
|
||||||
|
|
||||||
# try starting the qat service. If this doesn't work, just treat it as a warning for now.
|
# try starting the qat service. If this doesn't work, just treat it as a warning for now.
|
||||||
if ! service qat_service start; then
|
if ! service qat_service start; then
|
||||||
echo "failed to start the qat service. Something may be wrong with your 01.org driver."
|
echo "failed to start the qat service. Something may be wrong with your 01.org driver."
|
||||||
|
Loading…
Reference in New Issue
Block a user