Thanks God it's weekend, what Linux project do you have in mind?

NICE!
:man_mechanic:
Awesome!
repairing is caring!

1 Like

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 do vfio. I also passthrough a SATA partition with my Steam library.

  • To solve sound issues I bought a u-phoria umc22 / logitech Z333 (which has phono 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)

1 Like

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)

1 Like

I just booted up my Linux computer and among other things posted a comment in this forum thread. :slight_smile: 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.

Done!
:nerd_face:

2 Likes

improve my “customercare” (php - mysql) software … : - )

1 Like

These are two ways i do that

Hope they help. Have fun! :wink:

2 Likes
1 Like

I think I’m gonna do something exotic and install Arch with some tiling window manager on my VM :roll_eyes: :grimacing:

I have tested almost every DE in this planet but I haven’t popped my WM virginity yet :stuck_out_tongue:

1 Like

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.

1 Like

Yeah, DT is my favorite Linux tuber.

I think I start from i3 because it is “simple” and well documented.

1 Like

Today I started to play with Qtile and I already learned some basic things like how to move windows and stuff :rofl: 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

1 Like

Lots of fun with qtile!

If you use a laptop I will gladly share my script to make screen brightness work :grin:

1 Like

Thanks. I’m on desktop PC.

1 Like

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 :rofl: 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).

1 Like

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 :man_facepalming:

1 Like

I spent this weekend installing Arch on my computer then learning how to downgrade.

1 Like