Tutorial for passing through a Nvidia RTX graphics card to a Windows 10 virtual machine using a modified VBIOS
Recently I replaced my old NEC MultiSync 2690 HD screen for a HP DreamColor wide gamut screen with a 2560 x 1440 pixel resolution. The Nvidia GTX 970 GPU I used, though still perfectly capable at HD resolution, is likely to get challenged by higher resolutions. Moreover, the new Nvidia Studio driver doesn’t support models before the Geforce 1000 series, and I do want the 30 bpp (bit-per-pixel) support that this driver provides. Time for an upgrade – the Gigabyte RTX 2070 Super GPU.
This post is about passing through a Nvidia RTX 2070 Super GPU or any other modern Nvidia GPU to a Windows 10 guest. Continue reading “Passing Through a Nvidia RTX 2070 Super GPU”
Up until November 18, 2020 I would have suggested against the purchase of an AMD GPU for VFIO. But yesterday AMD launched its Radeon RX 6800 line of GPUs. Are the AMD Radeon 6800/6800XT suitable for VFIO? What is VFIO? -- Click to expand
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.
I’ve been tweaking my configuration for my needs and it performs very well. As a reference, I’m posting my:
- hardware configuration
- Linux distro, kernel, etc.
- Windows VM configuration (XML)
Continue reading “Windows 10 VFIO Passthrough Configuration”
Benchmarks help us compare the performance of different hardware configurations as well as drivers and operating systems. With regard to virtualization, benchmarks can be particularly useful in quantifying performance differences between an operating system running on a virtual machine versus the same OS running directly on the underlying hardware. Continue reading “Windows 10 Benchmarks (Virtual Machine)”
For those of you not (yet) familiar with VGA passthrough, here some common terms used in the how-to: Continue reading “Glossary of Virtualization Terms”
I’m regularly passing large amounts of data between my Windows VM and my Linux host. To avoid bottlenecks, I use a virtual network bridge that creates a 10 GBit link between the guest and the host, enough to challenge the fastest SSD on the market.
When running Ubuntu 18.04 or Linux Mint 19.1, Network Manager offers a convenient way to configure a network bridge.
Here is how you set up a virtual network bridge for connecting a Virtual Machine to the Linux Host. Please note that this will not work with a wireless network connection, at least not without some modifications: Continue reading “Define a network bridge using Ubuntu’s / Linux Mint’s Network Manager application”