Compile mdev samples for nova-next

Change-Id: If44964f2b99ee0482600ec31e85ea1d4caeea1b3
This commit is contained in:
Dan Smith
2023年10月09日 10:37:14 -07:00
parent b419f1dc56
commit 82f4da91ab

View File

@@ -464,6 +464,7 @@
NOVNC_FROM_PACKAGE:False
NOVA_USE_UNIFIED_LIMITS:True
MYSQL_REDUCE_MEMORY:True
NOVA_COMPILE_MDEV_SAMPLES:True
devstack_services:
# Disable OVN services
br-ex-tcpdump:false
@@ -486,6 +487,7 @@
devstack_plugins:
# Needed for QoS port heal allocation testing.
neutron:https://opendev.org/openstack/neutron
nova:https://opendev.org/openstack/nova
group-vars:
subnode:
devstack_localrc:

46
devstack/lib/mdev_samples Normal file
View File

@@ -0,0 +1,46 @@
function compile_mdev_samples {
set -x
local kver=$(uname -r)
local kvariant=$(uname -r | awk -F - '{print $NF}')
if [[ "$kvariant" == "kvm" ]]; then
echo "NOTE: The kvm variant of the kernel you are running does not " \
"have the mdev support required to enable the mdev samples."
echo "Install the generic variant and retry."
exit 1
elif [[ "$kvariant" != "generic" ]]; then
echo "NOTE: This may not work on your kernel variant of $kvariant!"
echo "Recommend installing the generic variant kernel instead."
fi
if grep deb-src /etc/apt/sources.list; then
sudo sed -i 's/^# deb-src/deb-src/' /etc/apt/sources.list
else
sudo tee -a /etc/apt/sources.list <<EOF
# Added by devstack
deb-src http://archive.ubuntu.com/ubuntu jammy main restricted
deb-src http://archive.ubuntu.com/ubuntu jammy-updates main restricted
deb-src http://archive.ubuntu.com/ubuntu jammy-security main restricted
EOF
fi
cat /etc/apt/sources.list
sudo apt update
sudo apt build-dep -y linux-image-unsigned-$kver
sudo apt install -y libncurses-dev gawk flex bison openssl libssl-dev \
dkms libelf-dev libudev-dev libpci-dev libiberty-dev autoconf llvm \
linux-headers-$kver
mkdir $NOVA_KERNEL_TEMP
cd $NOVA_KERNEL_TEMP
apt source linux-image-unsigned-$kver > kernel-source.log
cd linux-*/samples/vfio-mdev
sed -i 's/obj-[^ ]*/obj-m/' Makefile
make -C /lib/modules/$(uname -r)/build M=$(pwd) modules
sudo make -C /lib/modules/$(uname -r)/build M=$(pwd) modules_install
sudo depmod
for mod in $NOVA_MDEV_SAMPLES; do
sudo modprobe $mod
done
lsmod | grep mdev
}

20
devstack/plugin.sh Normal file
View File

@@ -0,0 +1,20 @@
NOVA_PLUGINDIR=$(readlink -f $(dirname "${BASH_SOURCE[0]}"))
source $NOVA_PLUGINDIR/lib/mdev_samples
if [[ 1ドル == "stack" ]]; then
case 2ドル in
install)
if [[ "$NOVA_COMPILE_MDEV_SAMPLES" == True ]]; then
async_runfunc compile_mdev_samples
fi
;;
extra)
if [[ "$NOVA_COMPILE_MDEV_SAMPLES" == True ]]; then
async_wait compile_mdev_samples
fi
;;
esac
elif [[ 1ドル == "clean" ]]; then
rm -Rf $NOVA_KERNEL_TEMP
fi

8
devstack/settings Normal file
View File

@@ -0,0 +1,8 @@
# Whether or not to compile the mdev sample drivers from source
NOVA_COMPILE_MDEV_SAMPLES=$(trueorfalse True NOVA_COMPILE_MDEV_SAMPLES)
# Insert these mdev sample modules
NOVA_MDEV_SAMPLES=${NOVA_MDEV_SAMPLES:-mtty mdpy mdpy-fb mbochs}
# Temporary directory for kernel source
NOVA_KERNEL_TEMP=$DEST/kernel
Reference in New Issue
openstack/nova
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.

The note is not visible to the blocked user.