The VFIO adventure... My wondering into the world of Virtual Machine Gaming... (Introduction)

Hello all,

This will be a multipart series of  love, fantastic suspense, tear filled and headache filled journey into the wonder of VFIO gaming. Yes some hearts were broken, yes I've aged 10 fold in the 2 years of starting this journey, and Yes... Oh so very much yes.... It's.... STILL... NOT... OVER!!!!

...Well... Now with that out of the way... Let's start with why I began this journey... Well... Much like everyone else who gets into VFIO, I wanted to run multiple systems with near 0 performance impact on the VM. Plus, I was heavily inspired by Linux Tech Tips "7 Gamer's, 1 CPU" series, but I didn't have a $100,000 system. So I had to start a bit smaller...

Round 1! FIGHT!

I started out using my first proper PC build in almost a decade. My current desktop at the time was an old custom with I think a Intel i5 4650? Not sure, but it ran DDR3 1600MT/s RAM and an 2.5 SSD. Played games "OK". But was time for a upgrade. So I splurged on some new, fancy AMD Ryzen hardware I've heard about, and got to work. Below is the basics of what I remember from the build.

Host Hardware (Q3 2020):‌‌
- Samsung 970 Evo Plus 1TB (Arch "Manjaro Linux)"‌‌
-GTX 780 is the Host (Linux) GPU.‌‌
-AMD Ryzen 3700x (8 Core, 16 Threads)
-Asus Prime x570-p MOBO‌‌
-G.Skill 2x32GB DDR4-3600 CL18 RAM

Windows Guest Passthrough:‌
‌-32GB Allocated to the VM.‌‌
-Onboard Intel GiB NIC‌‌
-Nvidia GTX 1080 Turbo
-PCIe USB card (for native USB plug-n-play)‌‌
-NVME Samsung Evo 1TB - Passthrough

Software:‌‌
-Started out with Manjaro Linux, then Fedora 34
-VFIO (Virtual Function I/O, Native built-in)‌‌
-KVM (Kernel Virtual Machine, built-in to the Linux Kernel)‌‌
-QEMU (Open-source Hypervisor, CLI)‌
‌-Libvirt (Open Source API to manage hypervisors, like QEMU, VMWare, etc...)‌‌
-Virt-Manager (GUI Application to manage all the above software pieces.)

This started out rather nicely, however, as this was my first try at the new thing, I fumbled a great deal... Like, it was not fun... First of all, the mobo I bought only had 1 full x16 PCIe slot, with the only other slot being x4. So... Umm... Yeah, Great success!!! (lol, no, actually great failure, with fireworks...).

The next thing to fail was since I ran Manjaro, I feared for my life at ever update/upgrade... And it bit me in the boot drive... I ran "pacman -Syyu" and let the fun start... Reboot... and oh look, Nvidia Drivers not found, the WDM could not find the drivers. Turns out ( I found this out much later), that because I black listed the nouveau drivers, the WDM could not load... But, hey at this point I moved on... Changed out the Mobo for a Asus Prime x570-Pro, with proper Bifurcation support and 2 full size x16 (x8/x8) slots, and moved onto Fedora 34, following Wendel's Level1Tech's post here: Fedora 33: Ultimiate VFIO Guide for 2020/2021 [WIP] - Wikis & How-to Guides - Level1Techs Forums
Had much better success, but alas, failure once more... Same issue with nouveau drivers and the WM...

So with round 1 with the opponent VFIO, was over and it's 1 'n 0... But this has been a great journey that has taken me a long time and I've learned a great deal, and I really can't say it's been all bad. In the coming posts within this series, I will eventually have my "Sorksation". It's still not entirely perfect, but it's very much near native... And although it's had ever changing hardware, I very much can't wait for the next aspect... getting the thing to work in Ubuntu 22.04!

Update: Round 2-3 were won!!!