Suggestions for budget VFIO gaming build

Hello. I’m new in the community. Thank you for having me.
I’m looking to build a system for everyday general computing on GNU/Linux and also some 1080p@60hz VFIO gaming on a single Windows VM with PCI-E passthrough. I really look forward to having the opportunity to delve into the world of this wonderful new virtualization technology.
By “everyday general computing” I mostly mean web browsing and media playback (movies, etc.) on GNU/Linux (I do most office work on my laptop). (However, now that I think of it, I also used to dabble a bit in music production so I may be interested in low-latency ASIO audio signal processing and recording with virtual instruments (VSTi), but I haven’t really taken this into consideration while planning the build. Maybe emulating a Mac might be a good option for this? The possibilities VFIO tech opens up bring me much excitement. Suggestions in this and any other regard will be very welcome).

A good friend of mine will help out by providing me with some components, namely the case, fans, 16gb’s of DDR4 RAM and a 1000W PSU. I also already have two 1080p monitors and a Crucial BX300 128gb SATA SSD that I plan to initially use as a boot drive for the host. For the rest, after some doing research I settled on buying the following:

Ryzen 5 5600x (Stock cooler for now, no OC)
Gigabyte X570 Aorus Elite Wi-Fi (I don’t need Wifi but it’s the only version of the Elite that my choice of retailer carries)
boot drive (Ubuntu Budgie 20.04 LTS): Crucial BX300 128gb SATA SSD
VM dedicated drive: Kingston SA2000M8/1000G 1TB (on topmost CPU NVME x4 lane)
home folder drive: WD Blue 4tb
Host GPU: Asrock RX 550 2gb Phantom Gaming (mounted on x16 chipset lane)
Guest Gpu: Radeon RX 5500 XT 8GB GDDR6 PULSE (on x16 CPU lane; yes, I realize it’s limited to x8)

I’m from South America (so please excuse my english) and I am on a budget (I’m a high-school teacher) so I must settle for budget components mostly, but spending this much seems reasonable and a good investment at the moment. The upcoming release of CP2077 may or may not have anything to do with it.
I’m going with an all-AMD build for the GNU/Linux compatibility and open drivers. I try to be privacy conscious and I like to avoid propietary software whenever I can. I pledged to myself never to run Windows on bare metal ever again.
I’m going for the Gigabyte X570 Elite because it seems to be a good all around board that’s relatively inexpensive and has all the features I need. I read here and elsewhere that it offers good virtualization support with IOMMU groups, etc. I also like that the chipset fan is positioned in a way that will not be blocked if I ever installed a larger GPU on the topmost PCI-E slot (I realize this may be nitpicking).
It’s important for me to have room to eventually upgrade this platform in the future: eventually replace the 5600x with a 5900x, eventually buy a bigger Navi to pass through and demote the 5500xt to host GPU, eventually get a better SSD to act as boot drive and demote the Bx300 to a laptop drive, etc.

Anyways, I love tinkering but I would like to have as much of a hassle-free VFIO experience as possible and I have tried my best to plan my build accordingly (for example by choosing to buy a dedicated drive for the VM instead of resorting to partitioning). Ideally I would be passing through the following:
4 CPU cores
the CPU lane’s Nvme drive
the guest GPU on the topmost PCI-E slot
USB ports for mouse, keyboard and sound card.
The onboard NIC? I honestly have no idea how to deal with providing network connectivity to the VM.

Anyway, this is my preliminary build. I would really appreciate any suggestions you guys might have for improving it without going overboard with the budget, mostly in order to make the VFIO experience as smooth as possible. Feel free to make any corrections or suggestions on anything. In any case, thanks again for taking the time to read this.

1 Like

Everything looks solid IMO. PSU is 2x overkill, but since its a gift, then well, will do :slight_smile:

Small tweaks I would suggest are just in planned system configuration not hardware itself. (I mean I would add mirrors to nvme and wd, but its budget stretch)

But i would use 128GB for windows VM, and partition NVME for linux and other stuff. You don’t have to pass whole devices to VM, partitions are fine too.

Otherwise looks like solid choices you made :).

And what if you jumped a gun? I mean even next year you can probably buy all this cheaper, when malware threat is over :wink:
And it will be several generations until ad 2077 anyway. Intel is promising at least 100 pluses more. Real world pluses of course :wink:

1 Like

Thanks for replying. By mirrors you mean extra disks for redundancy, as in RAID 1? It’s a great idea. I would like to have another HDD for this purpose. I already use Backintime+Timeshift along with external drives as a backup solution for system images and files but it’s a little cumbersome because I’m not tech-savvy enough to automate the process. It works with a couple clicks but still, a RAID array would make it easier, so thanks for your comment. I will make it a priority for the near future.
I thought about using the 1tb ssd as a boot drive and giving the smaller ssd to the VM but considering malware CP2077 alone will be a 70gb download I figure it be pushing it. Besides, 1tb for a GNU/Linux boot drive is overkill for my needs. Anyway, it’s a temporary measure. With SSD prices being what they are, I anticipate getting another nvme drive for boot in a short time.
I read on reddit that complications arise while doing partitioning+VM but if you say it’s fine then I shall look into it.
On waiting, well, I don’t know what Intel’s promising but a series of circumstances related to the local economy make this a good time to update imo… God, who am I kidding? You’re right. It’s all because of the malware.

Looks reasonable. I would avoid 5500XT, for you might get a cheaper option with enough OpenGL performance. Because that is what matter the most for host GPU. Even old NVidia cards can compete and they cost much less.

NVMe is perfect for both. It is not really worth it to split SATA and your CPU is fast enought to use threaded access to NVMe partition.

So you can do the following:
SATA = Windows system

  • NVMe = Linux LVM and use part of it for games on Windows.

or
NVMe for windows and SATA for linux.
This will lead to the best performance on Windows, but will limit you on Linux to 128GB (Which is plenty for most linux users)

On the other hand, The first has the versatility. You can create snapshots, keep multiple versions of windows with the same games. This is definitely the one to use for workstation stuff. If you test multiple OS versions and multiple game versions.

If you are going to do mainly gaming and you are new to VFIO - go for the first one. You just pasthrough both SSD and GPU and you are pretty much set.

1 Like

This topic was automatically closed 273 days after the last reply. New replies are no longer allowed.