VFIO Questions - Storage / Hardware

It seems that most of the guides here suggest passing through a nvme drive for Win10 to boot off. Is this simply a performance issue or that there are gotchas in using disk images and such? Well, my main question is how well (or badly) Win10 would run on a zfs zvol? I’m considering picking up some mirror pairs to setup a pool under… probably Pop OS?

At the end of the day I really like the idea of being able to snapshot my windows install before downloading updates as MS has had a pretty bad track record of releasing untested updates into the wild.

Otherwise I’m sitting on the fence in regards to a CPU/Mb upgrade atm. My MSI board (470 Gaming Plus) does have a Ryzen 3000 bios but the pessimist in me worries that IOMMU support might have been on the chopping block when they were removing support for older CPU’s due to space constraint. So I’m nervous that flashing might impede my ability to test VFIO even with my Ryzen 2000. I honestly don’t feel the need for PCIe 4.0 in my use case so if I got a new board it would probably be a 470/450… which are getting refreshed (at least in MSI’s case) due to only having a 16mb bios… /sigh. I really want to play with a 3900X. Long story short am I being paranoid on the IOMMU support in the new MSI bioses?

1 Like

I have several windows kvm vms running off zfs, HDD with SSD l2arc and zil drives.

The machines run fine. They only seem to struggle with the initial boot. I tried copying the disk image to an SSD and it didn’t make a huge difference. Once they’re up, apps and data are very responsive.

1 Like

Thanks, good to know I wasn’t walking into an unknown bottleneck of some sort. I can live with slow bootup as it’s not like you can’t work on the host while you wait. If I did passthru a nvme it would be for a steam library to speed up load time in games and I’m less concerned about data loss there as that can always be fixed with an integrity check. Though, now that I think about it… having your steam library on zfs would give you some insurance in case a game update broke compatibility with mods (I’m looking at you Bethesda), etc. While you can sometimes get away with making backups of the .exe or do some steam 3rd party website mojo to download old versions… but that can be a pain. Hmmm… well here’s hoping I have no complaints with the performance of RAID 10 as I’d like to keep it all on zfs if I can.

On another note why is so hard to find a monitor that ticks off all the features you want? Well the real challenge is finding the features you want on a monitor with an acceptable freesync range… I really wish monitor specs were more transparent. Well if all else fails my current monitor has an audio out, it just isn’t freesync. /shrug.

IOMMU on CPU is defined in AGESA. You should have the same groups as on 570 there.
All the old chipsets have the same unsuitable IOMMU where they group everything together.

Ahh, so you mean that, unlike it was in the past with say the 970 chipset, it’s the CPU itself or rather it’s microcode that decides iommu support? Well, even then the bios needs to expose the setting and as you say the hardware hanging off the chipset has to be put into groups so the Mb bios has some lifting to do no? So is my worry about MB manufacturer’s culling iommu to make room for more CPU sku’s completely unfounded? Especially if we see more variants in the future… surely we’ll at least get a proper Zen2/Navi 3000G part or two. Well, anyways it will either work or it won’t. So to stray on the side of caution I’ll first get VFIO working on my 470/2000 combo and then flash my bios to the latest, confirm iommu still works, and then order a new cpu. If the new cpu works iommu and all… great… if not then RMA for you. I do want to see VFIO work, and I’d love to consolidate everything to one PC… but I’ve been burned by PCI passthru in the early days and spent too much money to be worth it trying to get it to work… don’t want to repeat that. I mean it’s kinda silly to spend more than what you would building a second machine to do this imo.

Anyone happen to know what the suffix added on all of the 32Mb bios upgraded MSI boards? I remember hearing it somewhere but can’t remember where. Just to keep an eye on my options in case I cave err… change my mind. Nvm, found it https://www.tomshardware.com/news/msi-amd-400-motherboards-ryzen-3000,39836.html

edit Huh, I missed out on the little detail at the end there. They already axed RAID support. /shrug. I doubt many people actually use that but it says that already just removing the pretty gfx wasn’t enough.

Well, I finally picked up a sync monitor, proper ports and all during the sale. Now I can throw out this aging panel here that’s had it’s caps replaced a few times and has started to make noise…

Now to just hurry up and wait for my “next day” package arriving 3 days later. Moar robots are needed I guess… oO

That could be the best approach. Hopefully the AGESA for Zen2 will provide same isolation like Zen1 has. From the info provided in this forum the Audio, USB, SATA & encryption controller are in the same group like it was in early Zen1 AGESAs.

x570 chipset looked more promising. LAN was in separate group. LAN is not integrated on chip but rather connected to PCIe even if it is integrated on MB. USB controller and SATA are in different groups, these are integrated into chipset.

Planning to pass both CPU Audio and USB with nothing connected to CPU SATA. NVMe and PCIe slots coming from CPU are still separated. x570 should be the same chip as in CPU so the separation on CPU side should be possible in future AGESA. But counting on it could lead to disappointment.

So, I’ve been slowly but surely working on this. I have Pop OS loaded and after loading KDE because I wanted to burn gnome with fire… (mostly joking but I did have some issues when native/wine games changed resolutions) I got my pool setup and I was about to set up my ZVOL for my VM when I ran into a couple posts that suggest that it’s better to just use a .qcow2 as ZVOL snapshots take their entire size to create and the performance difference is negligible. Any zfs on linux vets confirm this? I just assumed that a ZVOL would be better than a file image but maybe not?

http://www.openoid.net/psa-snapshots-are-better-than-zvols/

edit Well, I just realized that these posts (mercenary_sysadmin) and another blog post I found - https://www.reddit.com/r/zfs/comments/b931o0/zfs_recordsize_faq/ were made by Jim Salter that is on the Techsnap podcast. Considering he probably means Allan Jude when he says he’s had something reviewed by experts it’s probably safe to say he knows what he’s talking about. Not to discredit the guy himself, but Allan has written a book on the subject and is sorta Mr. Zedfs. :stuck_out_tongue:

But that last link does leave me with some questions though. I get matching the zfs recordsize and qcow2 clustersize for performance/less fragmentation. But I’m left wondering why he suggested 16k for a gaming VM? Or actually he said VMs in general. Maybe multiple qcow2’s? One 16k for win10 boot and another 1Mb for the game library? Well, qcow2 might not offer clustersizes that large… actually it seems to support up to 2Mb. Ah, maybe it’s due to the internal NTFS partitions default 4k sectors. Derp. No matter how efficiently you match the recordsize and clustersize, the internal filesystem and it’s inevitable fragmentation is the problem I’m guessing. Sorry, just thinking out loud. I guess all there’s left to do is to try it myself and test the performance. I was just trying to avoid having to reload Win10 several times as I trial and error.

1 Like

If it truely matters here, I am running Win10 VM off a qcow2 or raw image without any problems and minimal slowdown. I passed through storage for gaming.

Yeah, I haven’t done any real testing yet, but I’ve had more problems with CPU usage than I/O thus far. RAID10 isn’t so bad even if it’s not SSD. I was a little dissapointed with how long POE2 loaded, but subsequent loads from saves were fast so the bottleneck might have been something to do with the engine itself. Actually now that I think about it that was the native linux version on ZFS. I haven’t tried it in the VM yet. Well, knock on wood.