The guide overall is perfectly fine. I expected to run into hiccups as I’m using a different OS (Ubuntu 19.04) and hardware so I knew I’d have to adapt some of the finer details to suit my setup.
Next issue, I’m using a 1950X so I do have 2 NUMA Nodes but Linux is reporting it as 1 NUMA Node with 32 threads. Both lstopo and lscpu show only one. Don’t know if that’s a BIOS setting issue or what so I don’t have any way of knowing (to my knowledge) which cores are closest to my GPU.
As for how to tie them down Google gave some answers:
# virsh vcpupin mytestvm
VCPU: CPU Affinity
———————————-
0: 0-15
1: 0-15
2: 0-15
3: 0-15
# virsh vcpupin mytestvm 0 0,1,2,3,8,9,10,11
# virsh vcpupin mytestvm 1 0,1,2,3,8,9,10,11
# virsh vcpupin mytestvm 2 0,1,2,3,8,9,10,11
# virsh vcpupin mytestvm 3 0,1,2,3,8,9,10,11
# virsh vcpupin mytestvm
VCPU: CPU Affinity
———————————-
0: 0-3,8-11
1: 0-3,8-11
2: 0-3,8-11
3: 0-3,8-11
Source
According to their guide that would tie the VM’s vcpu 0-3 to the physical CPU threads 0-3 & 8-11.
If you had a simpler method in mind then all the better. Since I’m not using the top slot for the GPU I’ve passed though I’m going to make the assumption it’s running on NUMA Node 2 which should be Core 8-15 or thread 8-15 & 24-31 (according to lstopo).