NICE!
Awesome!
repairing is caring!
Looking to configure a GPUs passthrough again, but also seeing about fixing what seems to be a performance issue in Win10 running in the VM.
Also looking to do some writing about a package manager I found really useful.
Definitely gonna keep me busy.
These vfio
settings work well for me on a Ryzen 3700x
passing through 6
cores. It should give you some clues for performance. The real-time schedulers help a lot with sound latency. With these Iām able to do VR on a 2070 super
:
<vcpu placement='static'>12</vcpu>
<iothreads>1</iothreads>
<cputune>
<vcpupin vcpu='0' cpuset='1'/>
<vcpupin vcpu='1' cpuset='9'/>
<vcpupin vcpu='2' cpuset='2'/>
<vcpupin vcpu='3' cpuset='10'/>
<vcpupin vcpu='4' cpuset='3'/>
<vcpupin vcpu='5' cpuset='11'/>
<vcpupin vcpu='6' cpuset='4'/>
<vcpupin vcpu='7' cpuset='12'/>
<vcpupin vcpu='8' cpuset='5'/>
<vcpupin vcpu='9' cpuset='13'/>
<vcpupin vcpu='10' cpuset='6'/>
<vcpupin vcpu='11' cpuset='14'/>
<emulatorpin cpuset='0,8'/>
<iothreadpin iothread='1' cpuset='7,15'/>
<vcpusched vcpus='0' scheduler='rr' priority='1'/>
<vcpusched vcpus='1' scheduler='rr' priority='1'/>
<vcpusched vcpus='2' scheduler='rr' priority='1'/>
<vcpusched vcpus='3' scheduler='rr' priority='1'/>
<vcpusched vcpus='4' scheduler='rr' priority='1'/>
<vcpusched vcpus='5' scheduler='rr' priority='1'/>
<vcpusched vcpus='6' scheduler='rr' priority='1'/>
<vcpusched vcpus='7' scheduler='rr' priority='1'/>
<vcpusched vcpus='8' scheduler='rr' priority='1'/>
<vcpusched vcpus='9' scheduler='rr' priority='1'/>
<vcpusched vcpus='10' scheduler='rr' priority='1'/>
<vcpusched vcpus='11' scheduler='rr' priority='1'/>
<iothreadsched iothreads='1' scheduler='fifo' priority='98'/>
</cputune>
<features>
<acpi/>
<apic/>
<hyperv mode='custom'>
<relaxed state='on'/>
<vapic state='on'/>
<spinlocks state='on' retries='8191'/>
<vpindex state='on'/>
<runtime state='on'/>
<synic state='on'/>
<stimer state='on'/>
<reset state='on'/>
<vendor_id state='on' value='other'/>
<frequencies state='on'/>
<reenlightenment state='on'/>
<tlbflush state='on'/>
<ipi state='off'/>
<evmcs state='off'/>
</hyperv>
<kvm>
<hidden state='on'/>
</kvm>
<vmport state='off'/>
<ioapic driver='kvm'/>
</features>
<cpu mode='custom' match='exact' check='none'>
<model fallback='allow'>EPYC-IBPB</model>
<topology sockets='1' dies='1' cores='6' threads='2'/>
<feature policy='require' name='topoext'/>
</cpu>
<clock offset='localtime'>
<timer name='rtc' present='no' tickpolicy='catchup'/>
<timer name='pit' present='no' tickpolicy='delay'/>
<timer name='hpet' present='no'/>
<timer name='kvmclock' present='no'/>
<timer name='hypervclock' present='yes'/>
<timer name='tsc' present='yes' mode='native'/>
</clock>
With vfio
the other half of the equation is hardware. The less you do in software the better the experience overall. This is my 2nd vfio
system & the extra hardware has been worth it. Some ideas for how I solved disk / sound issues:
-
I passthrough a 2nd
nvme
to the Windows vm as the system disk to eliminate disk issues. This also allows me to dual boot as well as dovfio
. I also passthrough a SATA partition with my Steam library. -
To solve sound issues I bought a
u-phoria umc22
/logitech Z333
(which hasphono
connections from the usb amp for Linux sound) - this allows me to passthrough the motherboard sound to the vm - givng me sound simultaneously in Windows & Linux. -
For USB I passthrough a
Renesas Technology Corp. uPD720201 USB 3.0 Host Controller (rev 03)
to the vm.
Time for some Generation Zeroā¦;o)
eeey, thanks very much for the info!
I did consider maybe the lack of CPU pinning in my last try might have contributed to some performance issues.
For a Windows vm
cpu pinning definitely helps. The hyperv
setting I think lets Windows know the os
is in a vm
(which allows Windows to do some optimization). As I passthrough a dedicated nvme
I only need to configure an iothread
for the SATA partition I passthrough - you will notice the iothread
only runs on threads not dedicated to the vm
. Not shown above I also set 6
queues for the iothread
(to match the 6
cores I passed though):
<controller type='scsi' index='0' model='virtio-scsi'>
<driver queues='6' iothread='1'/>
<address type='pci' domain='0x0000' bus='0x08' slot='0x00' function='0x0'/>
</controller>
You will know when the configuration is correct for your setup as the vm
will idle @ 1%
cpu with occasional jumps to 2%
(which indicates Linux & Windows are not fighting for the same resources)
I just booted up my Linux computer and among other things posted a comment in this forum thread. I no longer consider myself a distro hopper to spend my time constantly experimenting. Although sometimes I get the urge to try a new distribution, but only after reading enough about it.
improve my ācustomercareā (php - mysql) software ā¦ : - )
These are two ways i do that
Hope they help. Have fun!
I think Iām gonna do something exotic and install Arch with some tiling window manager on my VM
I have tested almost every DE in this planet but I havenāt popped my WM virginity yet
WM are awesome, especially tiling! If you havenāt watched already, I can recommend DTās videos, he has made plenty of intro guides, gives a great overview.
Edit: to date I tried qtile, awesome, i3wm, and dwm. But I keep going back to i3 due to simplicity and got used to it.
Yeah, DT is my favorite Linux tuber.
I think I start from i3 because it is āsimpleā and well documented.
Today I started to play with Qtile and I already learned some basic things like how to move windows and stuff So I guess Im gonna waste many hours of my life with this one.
Task for tomorrow is to get gnome-polkit to run on background. I followed this guide word-to-word but maybe I mess some syntax because I still had to run polkit manually on apps like Gparted https://github.com/qtile/qtile/issues/1264
Lots of fun with qtile!
If you use a laptop I will gladly share my script to make screen brightness work
Thanks. Iām on desktop PC.
I am getting ready for the weekend. Gnome installed checkā¦
Emacs itās your turn! Found this book which is quite entertaining and very very very thorough but enjoyable to read, itās nice intro to emacs and also infos on Linux, FSF, etc.
Then next step also add either i3wm or qtile next to gnome and start a new config file.
I use polkit-dumb-agent and it works great (Iām on Qtile also).
This week I have wasted most of my time with WM:s and Awesome is starting to feel cozy place to tinker. I have been considering to put it on my on Bare-metal rig at some pointā¦ So it seem like that the rabbit hole is ready to suck me in again
I spent this weekend installing Arch on my computer then learning how to downgrade.