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.
Updated on November 19, 2020
A question that frequently pops up in VFIO or GPU passthrough forums is which graphics card to buy: AMD or Nvidia? And the answer often depends on whom you ask.
Some people will tell you to stay clear of Nvidia graphics cards since their driver detects the virtual machine and quits.
Others mention the “reset bug” that’s been haunting AMD graphics cards for the last couple of years (see Wendells video interview of Linux kernel maintainer Greg Kroah-Hartman). So what’s the story?
Continue reading “Graphics Cards: AMD vs Nvidia”
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.
Then I read Bryan Steiner’s GPU passthrough tutorial for the AMD Ryzen 9 3900X and an Ubuntu-based Pop!_OS Linux host. Several users on the VFIO Reddit forum reported successful VFIO VGA passthrough with the AMD Ryzen 9. Continue reading “Upgrading my PC to an AMD Ryzen 9 3900X System”
More than a year has passed since I’ve posted about building a new PC. So what is holding me back from the upgrade? Time and money are considerations, but not the reason.
On paper, the AMD Ryzen 9 has outperformed Intel in most if not all tasks. The Ryzen 9 3900X beats the Intel i9 9900K as well as the Intel i9 10900X in multi-threaded workloads. The Intel i9 9900K can barely hold its ground on single-threaded tasks. Numerous benchmarks have shown that AMD is a clear winner. Continue reading “Hardware upgrade or what’s holding me back?”
For some time I wanted to run a kvm virtual machine with GPU passthrough on a low-end Asus H110M-K D3 motherboard with an i3-6100 CPU and an Nvidia GTX 1060 GPU, but never found the time. Now I finally had a chance to give it a try. While the preparations were easy, I ran into a problem when starting the Windows 10 VM:
Jan 22 15:21:24 alon-i3 kernel: [ 108.514992] vfio_pin_pages_remote: RLIMIT_MEMLOCK (16777216) exceeded
Continue reading “GPU Passthrough with Low-End Intel i3-6100 CPU”
Back in 2012 I built a PC around the Intel i7 3930K 6-core/12HT processor which I have been using ever since. While it’s still a strong PC, especially with the upgrades (GPU, SSD) I made, I’m starting to feel that editing photos isn’t as snappy as it used to be. I am also curious in how well the new generation of CPUs lend themselves to VGA passthrough. In short, I’m considering building a new PC. Continue reading “New PC Build”
I did some overclocking (to 4.2 GHZ) and gave the CPU and memory a trial using Prime95 and other torture tests. Later, much later, I realised that part of my memory was gone!
Checking the BIOS showed memory failures of two of 8 modules, reducing my total to 24GB. I’m not sure it was the overclocking, the torture tests or simply old age (the PC and memory is 6 years old). The funny thing was that I could boot into Linux and run some applications, and whenever I used Firefox I would sooner or later get a freeze. I monitored the processes and saw that the kswapd demon was busy. It took me a little to grasp that I had “lost” memory. Continue reading “Memory Failure”
This is yet another benchmark of my Windows 10 VM. This time I used the free Mersenne Prime Search software Prime95 (mprime under Linux) available at www.mersenne.org. I wanted to see if there is a significant difference between running the benchmark on the Linux host, versus the Windows virtual machine. Continue reading “Prime95 Benchmark: Linux Host versus Windows VM”
In my Running Windows 10 on Linux using KVM with VGA Passthrough tutorial I introduced different options for using the keyboard and mouse with the Linux host and the Windows VM. Running a virtualized Windows VM means running two separate systems – the Linux host and the Windows VM – both of which require input and output devices. Continue reading “Virtualization Hardware Accessories”