1
0
Fork 0
vfio-win10/roles/win10/templates/hooks/qemu

42 lines
1.0 KiB
Bash
Executable File

#!/bin/bash
prepare() {
systemctl start win10-usb
# https://github.com/gnif/vendor-reset/issues/46#issuecomment-992282166
{% for pci_device_id in pci_device_ids %}
echo 'device_specific' >'/sys/bus/pci/devices/{{ pci_device_id.domain }}:{{ pci_device_id.bus }}:{{ pci_device_id.slot }}.{{ pci_device_id.function }}/reset_method'
{% endfor %}
vfio-isolate -u /tmp/win10.undo \
drop-caches \
compact-memory \
irq-affinity mask C1-3,5-7 \
cpuset-modify --cpus C0,4 /system.slice \
cpuset-modify --cpus C0,4 /user.slice \
move-tasks / /host.slice \
cpu-governor performance C0-7
for _ in $(seq 5); do
sleep 3
# assign hugepages
sysctl -w vm.nr_hugepages=8192 && break
done
sleep 10
}
release() {
systemctl stop win10-usb
vfio-isolate restore /tmp/win10.undo
sysctl -w vm.nr_hugepages=0
}
if [ "$1" == "win10" ]; then
if [ "$2" == "prepare" ]; then
prepare
fi
if [ "$2" == "release" ]; then
release
fi
fi