diff --git a/DSEreset.bat b/DSEreset.bat
deleted file mode 100644
index 74e010a..0000000
--- a/DSEreset.bat
+++ /dev/null
@@ -1,12 +0,0 @@
-:: disable driver signature enforcement
-:: relies on https://github.com/Mattiwatti/EfiGuard
-C:\Users\e\FreeSLI-dist\tools\EfiDSEFix.exe -d
-:: let it soak
-TIMEOUT /T 2
-:: reset the devices, load the unsigned drivers
-C:\Users\e\FreeSLI-dist\tools\devcon.exe disable "PCI\VEN_10DE&DEV_1E87&SUBSYS_21833842"
-C:\Users\e\FreeSLI-dist\tools\devcon.exe enable "PCI\VEN_10DE&DEV_1E87&SUBSYS_21833842"
-:: re-enable driver signature enforcement
-TIMEOUT /T 2
-C:\Users\e\FreeSLI-dist\tools\EfiDSEFix.exe -e
-PAUSE
\ No newline at end of file
diff --git a/start-win10 b/start-win10
index 6a49962..0fde060 100755
--- a/start-win10
+++ b/start-win10
@@ -1,83 +1,63 @@
#!/bin/bash
-#
-# script to create cpusets to isolate CPU threads for KVM/libvirt VMs
-# requires 'cset'
+# requires `cset`
# available on Fedora through my COPR:
# - https://copr.fedorainfracloud.org/coprs/jlay/cpuset/
-# review comments below regarding CPUs and XML entries
-#
+# review notes regarding XML entries
+
# this script:
# - isolates host tasks from the VM CPUs
# - applies some generic tweaks
# - resets host isolation on VM shutdown
-#
-# define the CPUs (cores/threads) to isolate for the VM
-VM_CORES='0-20,24-44'
-# Tip: refer to 'virsh capabilities | grep siblings'
-# this will show CPU topology information for the host
-# allows one to pick optimal layout for the VM
-#
-# the pinned CPUs are definend like so in the VM libvirt XML:
+
+# Set the range of cores assigned to the windows VM
+# on an i9-7920x this is the first 8 cores and the corresponding hyperthreads
+VM_CORES='0-7,12-19'
+
+# based on the assignments of pinned CPUs in libvirt XML, eg:
#
-#
-#
-#
-# [...]
-#
-#
-# NOTE: the pinned emulator CPUs must be included in VM_CORES
-# probably any iothreads too
-#
-# example above is based on a threadripper 3960x:
-# - one NUMA node
-# - SMT enabled
-#
+#
+# [...]
+#
+#
+#
+# `lscpu -e` and `virsh capabilities` are helpful for determining valid pinning settings
+# on example system (i9 7920x), vCPUs 0-15 are pinned (alternating between) cores 0-7 and hyperthreads 12-19
+
# reduce kernel jitter
-sudo sh -c 'sysctl vm.stat_interval=120 ; sysctl kernel.watchdog=0'
+sudo sysctl vm.stat_interval=120
+sudo sysctl kernel.watchdog=0
-# attempt to reset shielding, we want to create it with current params
-# and remove any existing slices from previous VM boots
-# we want it to be created with current params, such as possibly-changed pinned CPUs
-sudo cset shield --reset --sysset=host.slice --userset=windows10.slice || echo "something happened resetting shielding"
-
-# destroy old cpusets
-sudo cset set -d windows10.slice || echo "ignoring failure to destroy VM cpuset"
-sudo cset set -d host.slice || echo "ignoring failure to destroy host cpuset"
-
-# shield cores
-# userset slice must match the partition defined in libvirt xml, eg:
-#
-#
+# isolate VM CPUs from host tasks
+# VM must have the partition cset uses w/ userset below defined in libvirt XML, eg:
+#
+# ... reference line
#
# /windows10
#
-#
+# ... reference line
+
+# first, attempt to reset shielding. we want to recreate conflicting names with set params
+sudo cset shield --reset --sysset=host.slice --userset=windows10.slice
+sudo cset set -d windows10.slice
+
+# shield cores
sudo cset shield -c $VM_CORES --sysset=host.slice --userset=windows10.slice
# start the VM
-virsh start windows10
+sudo virsh start windows10
-# determine QEMU vCPU PIDs
-QEMU_PIDS=$(sudo egrep 'vcpu.*pid' /var/run/libvirt/qemu/windows10.xml | cut -d\' -f4)
-
-# set higher priority for vCPU PIDs
-sudo renice -20 -p ${QEMU_PIDS}
-# either of these attempts at real time seem to freeze on boot
-# try a different kernel (not 5.8.11)
-#for CPUPID in ${QEMU_PIDS}; do
-## sudo chrt -f -p 99 ${CPUPID}
-# sudo chrt -r -p 99 ${CPUPID}
-#done
+# set higher priority
+QEMU_PID=$(sudo ps fauxww | awk '$0 ~ /qemu.*windows1[0]/ {print $2}')
+sudo renice -20 -p ${QEMU_PID}
+sudo chrt -f -p 99 ${QEMU_PID}
echo "Waiting for windows10 VM to stop before resetting cpusets"
while true; do
# chill a bit
sleep 10
# get vm state, check if it's off
- if test -f "/var/run/libvirt/qemu/windows10.xml"; then
- VM_STATE="on" # doesn't do much (yet?), just here to fill a spot
- else
- VM_STATE="off"
+ VM_STATE=$(sudo virsh dominfo windows10 | awk '$1 ~ /State/ {print $NF}')
+ if [ "$VM_STATE" == 'off' ]; then
echo -e "windows10 VM shut down, setting cpusets back to normal\n"
sudo cset shield --reset --sysset=host.slice --userset=windows10.slice
exit 0
diff --git a/old/windows10-1586050224.xml b/windows10-1586050224.xml
similarity index 100%
rename from old/windows10-1586050224.xml
rename to windows10-1586050224.xml
diff --git a/windows10-threadripper-pinning.xml b/windows10-threadripper-pinning.xml
deleted file mode 100644
index 83d3d5c..0000000
--- a/windows10-threadripper-pinning.xml
+++ /dev/null
@@ -1,371 +0,0 @@
-
- windows10
- ebe29b71-9205-4032-9880-9a02bdf2cc2e
-
-
-
-
-
- 33554432
- 33554432
-
-
-
-
-
- 32
- 3
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- /windows10
-
-
- hvm
- /usr/share/edk2/ovmf/OVMF_CODE.fd
- /var/lib/libvirt/qemu/nvram/windows10_VARS.fd
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- destroy
- restart
- destroy
-
-
-
-
-
- /usr/bin/qemu-system-x86_64
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- /dev/urandom
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-