diff --git a/start-win10 b/start-win10
index 0fde060..274e894 100755
--- a/start-win10
+++ b/start-win10
@@ -1,50 +1,64 @@
#!/bin/bash
-# requires `cset`
+#
+# script to create cpusets to isolate CPU threads for KVM/libvirt VMs
+# requires 'cset'
# available on Fedora through my COPR:
# - https://copr.fedorainfracloud.org/coprs/jlay/cpuset/
-# review notes regarding XML entries
-
+# review comments below regarding CPUs and XML entries
+#
# this script:
# - isolates host tasks from the VM CPUs
# - applies some generic tweaks
# - resets host isolation on VM shutdown
-
-# 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:
+#
+# define the CPUs (cores/threads) to isolate for the VM
+VM_CORES='0-11,24-35'
+# 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:
#
-#
-# [...]
-#
-#
-#
-# `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
-
+#
+#
+#
+# [...]
+#
+#
+# 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
+#
# reduce kernel jitter
sudo sysctl vm.stat_interval=120
sudo sysctl kernel.watchdog=0
-# 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
+# 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
sudo cset set -d windows10.slice
# shield cores
+# userset slice must match the partition defined in libvirt xml, eg:
+#
+#
+#
+# /windows10
+#
+#
sudo cset shield -c $VM_CORES --sysset=host.slice --userset=windows10.slice
+# setup looking glass
+#sudo touch /dev/shm/looking-glass
+#sudo chown jlay:kvm /dev/shm/looking-glass
+#sudo chmod 660 /dev/shm/looking-glass
+
# start the VM
-sudo virsh start windows10
+virsh start windows10
# set higher priority
QEMU_PID=$(sudo ps fauxww | awk '$0 ~ /qemu.*windows1[0]/ {print $2}')