setup.sh: change NVME_WHITELIST to PCI_WHITELIST

NVME_WHITELIST param remains to work, but is now
undocumented. PCI_WHITELIST will apply to all PCI
devices - NVMe, IO/AT and Virtio.

Change-Id: I782f48bea68079c63e4a2794e4a4eb8f9a7226c9
Signed-off-by: Dariusz Stojaczyk <dariuszx.stojaczyk@intel.com>
Reviewed-on: https://review.gerrithub.io/395944
Tested-by: SPDK Automated Test System <sys_sgsw@intel.com>
Reviewed-by: Daniel Verkamp <daniel.verkamp@intel.com>
Reviewed-by: Ben Walker <benjamin.walker@intel.com>
This commit is contained in:
Dariusz Stojaczyk 2018-01-23 15:07:10 +01:00 committed by Jim Harris
parent f8c1c71c2e
commit 3779dda48b

View File

@ -38,11 +38,11 @@ function usage()
echo "HUGENODE Specific NUMA node to allocate hugepages on. To allocate"
echo " hugepages on multiple nodes run this script multiple times -"
echo " once for each node."
echo "NVME_WHITELIST Whitespace separated list of NVMe devices to bind."
echo "PCI_WHITELIST Whitespace separated list of PCI devices (NVMe, I/OAT, Virtio) to bind."
echo " Each device must be specified as a full PCI address."
echo " E.g. NVME_WHITELIST=\"0000:01:00.0 0000:02:00.0\""
echo " To blacklist all NVMe devices use a non-valid PCI address."
echo " E.g. NVME_WHITELIST=\"none\""
echo " E.g. PCI_WHITELIST=\"0000:01:00.0 0000:02:00.0\""
echo " To blacklist all PCI devices use a non-valid address."
echo " E.g. PCI_WHITELIST=\"none\""
echo " If empty or unset, all PCI devices will be bound."
echo "SKIP_PCI Setting this variable to non-zero value will skip all PCI operations."
echo "TARGET_USER User that will own hugepage mountpoint directory and vfio groups."
@ -50,8 +50,13 @@ function usage()
exit 0
}
function nvme_whitelist_contains() {
for i in ${NVME_WHITELIST[@]}
function pci_can_bind() {
if [[ ${#PCI_WHITELIST[@]} == 0 ]]; then
#no whitelist specified, bind all devices
return 1
fi
for i in ${PCI_WHITELIST[@]}
do
if [ "$i" == "$1" ] ; then
return 1
@ -153,7 +158,7 @@ function configure_linux_pci {
for bdf in $(iter_pci_class_code 01 08 02); do
blkname=''
get_nvme_name_from_bdf "$bdf" blkname
if [[ ${#NVME_WHITELIST[@]} != 0 ]] && nvme_whitelist_contains $bdf == "0" ; then
if pci_can_bind $bdf == "0" ; then
echo "Skipping un-whitelisted NVMe controller $blkname ($bdf)"
continue
fi
@ -177,6 +182,10 @@ function configure_linux_pci {
for dev_id in `cat $TMP`; do
for bdf in $(iter_pci_dev_id 8086 $dev_id); do
if pci_can_bind $bdf == "0" ; then
echo "Skipping un-whitelisted I/OAT device at $bdf"
continue
fi
linux_bind_driver "$bdf" "$driver_name"
done
done
@ -190,6 +199,10 @@ function configure_linux_pci {
for dev_id in `cat $TMP`; do
for bdf in $(iter_pci_dev_id 1af4 $dev_id); do
if pci_can_bind $bdf == "0" ; then
echo "Skipping un-whitelisted Virtio device at $bdf"
continue
fi
blknames=''
get_virtio_names_from_bdf "$bdf" blknames
for blkname in $blknames; do
@ -427,8 +440,13 @@ fi
: ${HUGEMEM:=2048}
: ${SKIP_PCI:=0}
: ${NVME_WHITELIST:=""}
declare -a NVME_WHITELIST=(${NVME_WHITELIST})
: ${PCI_WHITELIST:=""}
if [ -n "$NVME_WHITELIST" ]; then
PCI_WHITELIST="$PCI_WHITELIST $NVME_WHITELIST"
fi
declare -a PCI_WHITELIST=(${PCI_WHITELIST})
if [ -z "$TARGET_USER" ]; then
TARGET_USER="$SUDO_USER"