Anyone who follows this website will notice that the tutorials are rather long. In these long tutorials I usually give reference specs, explain basic terms or processes, and expand on the how and why.
I wish I could write short, easy, step by step tutorials titled “GPU passthrough made easy” or the “Quick guide to VFIO bliss”. In fact, there are plenty of those out there in the great Internet. Some of the most popular ones are on Youtube, showing you how to get your Windows gaming VM up and running in no time.
Ever since I started to run a Microsoft Windows VM with GPU passthrough, Nvidia graphics drivers would only support their professional Quadro line of graphics cards in a virtual machine. Ten years ago I bit the bullet and bought an outrageously expensive Nvidia Quadro 2000 GPU. Truth be told – it’s been and still is a great GPU and I currently use it for my Linux host. Back then the Quadro was passed through to a Windows 7 VM running on Xen. It worked great.
A look at Manjaro Linux from a VFIO passthrough user perspective – the benefits and downsides of using Manjaro as a Linux host
Last year in April I switched from Linux Mint via a short detour to Pop_OS to Manjaro Linux as my host OS. The reasons I chose Manjaro Linux were its up-to-date kernel and software and its well-rounded selection of software packages. However, the latest and greatest kernel and software can come at a price of being less stable. In this post I like to weigh in the pros and cons for Manjaro Linux and what you might want to consider before jumping on the wagon.
Tutorial for passing through a Nvidia RTX graphics card to a Windows 10 virtual machine using a modified VBIOS
Last update: September 14, 2021
Starting with the GeForce 1000 series, vfio passthrough of a Nvidia GPU has become a little more complicated. If, when starting the VM, you get a black screen, chances are you need to pass along a VBIOS file to the VM so the GPU can properly initialize.
This post is about passing through a Nvidia RTX 2070 Super GPU or any other modern Nvidia GPU to a Windows 10 guest.
VFIO is about running for example Windows 10 in a virtual machine (VM), using a discrete graphics card that you pass through to the VM. The Linux driver framework that is used to bind the graphics card during the host boot is called VFIO. The virtual machine itself (e.g. Windows 10) then uses its own native graphics driver to drive the GPU, significantly boosting VM graphics performance. This enables you to run Linux on the host and create Windows virtual machines for gaming and other high performance tasks.
AMD graphics cards have been plagued with the notorious FLR reset bug over several years now. Independent developers wrote a kernel patch as a workaround that would work most of the time. But the patch required kernel or module compilation, which is not everyone’s cup of tea.
Yesterday Wendell at Level1Techs posted a (p)review of the latest AMD Radeon 6800 and 6800XT graphics cards. He attests that the AMD Radeon 6800/6800XT are perfectly suitable for VFIO passthrough. No more FLR reset bug. Wendell goes further to point out that the Linux graphics drivers available in Ubuntu 20.04 already support these cards. This is great news for the Linux user community in general, and VFIO passthrough enthusiasts especially! Finally an alternative to NVIDIA.
There are more good news: Those of you who already own an AMD Navi, Vega or Polaris graphics card plagued with the FLR reset bug can now enjoy a simpler, better workaround. Instead of compiling the patch into the kernel, all you need to do now is to “build the module and modprobe it, or use dmks to manage it directly”.
AMD has already shown its Linux support through its open source graphics drivers. The new graphics cards based on the RDNA2 architecture have finally corrected the product flaw of previous releases. Welcome to the VFIO club.
You will probably have to wait some time to get hold of one of these cards, as they seem to have sold out on launch day.
If this article has been helpful, click the “Like” button below. Don’t forget to share this page with your friends.
I’ve already written a detailed tutorial on Windows 10 kvm VGA passthrough based on QEMU version 2.11. Years have passed and recent distributions like Ubuntu 20.04, Linux Mint 20, or Manjaro come with QEMU 4.0, 4.2 or 5.1.
A lot has happened since version 2.11. QEMU 4.0 includes numerous changes and improvements such as trim support in the virtio-blk driver, pcie-root-port with PCIe 4.0 support (with Q35-4.0 machine type), as well as improved audio.
It wasn’t easy this time. Don’t get me wrong – the VFIO passthrough part, though challenging in some ways, went quite well. All in all I’m pleased now with the results. Here the Passmark 9.0 benchmark as uploaded onto their database (for more details, click the frame below):
I’ve been contemplating a PC upgrade for more than a year (see my post here). At first I considered staying with Intel and getting an i9-9900K CPU with integrated GPU on a Z390 motherboard.
Along came the AMD Ryzen 9 3900X that topped the benchmarks, including the Adobe Lightroom and Photoshop benchmarks (to be precise, it ranked #4 in the Adobe Lightroom benchmark, and a narrow #1 in the Adobe Photoshop benchmark). These good news about the AMD Ryzen 3900X were soon followed by reports about BIOS issues and VFIO incompatibility. At the very least, it looked like VGA passthrough was more challenging.
A year ago I wrote about the 2D graphics performance impact of the Windows 10 (1803) update inside a virtual machine. As it turned out, the performance impact was related to the Spectre vulnerability patch that Microsoft had introduced. However, the same patch had practically no performance impact on a Windows 10 bare-metal installation.