66 lines
1.8 KiB
Bash
66 lines
1.8 KiB
Bash
#!/bin/bash
|
|
|
|
set -x
|
|
|
|
# Load Variables
|
|
source "/etc/libvirt/hooks/kvm.conf"
|
|
|
|
# Unmount the Windows drive
|
|
umount $WIN || /bin/true
|
|
|
|
# Stop LightDM
|
|
systemctl stop lightdm.service
|
|
sleep 2
|
|
|
|
# Calculate number of hugepages to allocate from memory (in MB)
|
|
HUGEPAGES="$(($MEMORY/$(($(grep Hugepagesize /proc/meminfo | awk '{print $2}')/1024))))"
|
|
|
|
echo "Allocating hugepages..."
|
|
echo $HUGEPAGES > /proc/sys/vm/nr_hugepages
|
|
ALLOC_PAGES=$(cat /proc/sys/vm/nr_hugepages)
|
|
|
|
TRIES=0
|
|
while (( $ALLOC_PAGES != $HUGEPAGES && $TRIES < 1000 ))
|
|
do
|
|
echo 1 > /proc/sys/vm/compact_memory ## defrag ram
|
|
echo $HUGEPAGES > /proc/sys/vm/nr_hugepages
|
|
ALLOC_PAGES=$(cat /proc/sys/vm/nr_hugepages)
|
|
echo "Succesfully allocated $ALLOC_PAGES / $HUGEPAGES"
|
|
let TRIES+=1
|
|
done
|
|
|
|
if [ "$ALLOC_PAGES" -ne "$HUGEPAGES" ]
|
|
then
|
|
echo "Not able to allocate all hugepages. Reverting..."
|
|
echo 0 > /proc/sys/vm/nr_hugepages
|
|
exit 1
|
|
fi
|
|
|
|
# Unload all Nvidia drivers
|
|
modprobe -r nvidia_drm
|
|
modprobe -r nvidia_modeset
|
|
modprobe -r nvidia_uvm
|
|
modprobe -r nvidia
|
|
|
|
# Unbind the GPU from display driver
|
|
virsh nodedev-detach $VIRSH_GPU_VIDEO
|
|
virsh nodedev-detach $VIRSH_GPU_AUDIO
|
|
|
|
# Load VFIO kernel modules
|
|
modprobe vfio
|
|
modprobe vfio_pci
|
|
modprobe vfio_iommu_type1
|
|
|
|
# Create looking glass shm
|
|
systemd-tmpfiles --create /etc/tmpfiles.d/10-looking-glass.conf
|
|
|
|
# Enable CPU governor performance mode
|
|
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
|
for file in /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor; do echo "performance" > $file; done
|
|
cat /sys/devices/system/cpu/cpu*/cpufreq/scaling_governor
|
|
|
|
# Isolate host
|
|
systemctl set-property --runtime -- user.slice AllowedCPUs=12,13,14,15
|
|
systemctl set-property --runtime -- system.slice AllowedCPUs=12,13,14,15
|
|
systemctl set-property --runtime -- init.scope AllowedCPUs=12,13,14,15
|