Kernel 6.0 and VFIO

Kernel 6 not booting with VFIO – workaround

Recently I upgraded to kernel 6.0 on my Manjaro rig, but that didn’t go well. The PC booted but there was no screen output. I was able to ssh into the Manjaro host, though.

Searching for an answer led me to the “Linux Kernel 6 seems to be incompatible with the vfio_pci module needed for PCI passthrough” on Level1Techs. If you go further down the thread, you’ll see how someone posted a working solution “Using the driver_override feature“.

Continue reading “Kernel 6.0 and VFIO”

Passing Through a Nvidia RTX 2070 Super GPU

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.

Continue reading “Passing Through a Nvidia RTX 2070 Super GPU”

Windows 10 VFIO Passthrough Configuration

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”

Impact of Spectre and Meltdown Protection on Virtual Machine Performance

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.

Time has passed and I wanted to see if there has been any progress. Right now I’m running Windows 10 (1903) with Nvidia driver release 431.36. Windows 10 is up-to-date, Nvidia however already offers a newer version (431.60).

Continue reading “Impact of Spectre and Meltdown Protection on Virtual Machine Performance”

Blacklisting Graphics Driver

Update September 14, 2021: This is a complete revamp, adding new, more robust methods and dropping outdated ones.

Update November 17, 2022: Kernel 6 seems to break the grub method.

When running a VM with GPU passthrough, that GPU should be bound to the VFIO driver. To make this happen, we need to prevent the regular graphics driver from binding to the passthrough GPU and instead bind the vfio-pci driver.

In the past we used to blacklist the graphics driver. This worked in most cases, but what if you need the graphics driver for another GPU, e.g. the host GPU?

Continue reading “Blacklisting Graphics Driver”

Creating a Windows 10 Virtual Machine Using the Virtual Machine Manager (virt-manager)

March 29. 2020 edit: Recently I published a tutorial using Virtual Machine Manager. You can find it here: Creating a Windows 10 VM on the AMD Ryzen 9 3900X using Qemu 4.0 and VGA Passthrough.

Before you get your hopes high, this post is not (yet?) a tutorial on creating a Windows 10 virtual machine using the Virtual Machine Manager (virt-manager) GUI. It should have been, though. I spent the better part of a week trying to configure and install a Windows 10 VM that delivers the performance that I’m used to.

As it turns out, it was a failure. Don’t get me wrong, I did manage to configure and run Windows using virt-manager and virsh. I even installed it multiple times, changing the configuration to what I hoped would improve performance. But whatever I tried, I never got even near the speed and snappiness that I achieve by following my tutorial using a start script.

Many users – myself included – rather prefer the comfort of a graphical user interface with check boxes and pull-down menus to select the various options. I’ve listed some tutorials using the virt-manager at the end, for those who came to find a solution.

Continue reading “Creating a Windows 10 Virtual Machine Using the Virtual Machine Manager (virt-manager)”

Installing a Linux Mint 19 (Ubuntu 18.04) VM with VGA Passthrough

Introduction

Installing a Linux Mint 19 VM (or Ubuntu 18.04) with VGA passthrough is surprisingly straightforward. This tutorial follows the Running Windows 10 on Linux using KVM with VGA Passthrough almost step-by-step. I will therefore focus on what’s different from the above tutorial.

While booting the Linux Mint 19 life installation media (ISO) as a VM was easy, the installation of Linux Mint invariably ended with the following error:

The ‘grub-efi-amd64-signed’ package failed to install target/

The following tutorial will describe the steps to overcome this problem (bug?). Continue reading “Installing a Linux Mint 19 (Ubuntu 18.04) VM with VGA Passthrough”

Why run Windows on Linux?

Last edited: May 31, 2020

I’ve written several tutorials on “how to make dual-boot obsolete using VGA passthrough“, yet one may ask why run Windows on Linux? Most PC or laptop come pre-installed with Windows, in fact its rare to see computers pre-installed with Linux. So why not just leave Windows and install Linux in a virtual machine (VM), for example using Oracle VirtualBox?

Installing Linux in a VirtualBox VM is definitely a lot easier than following my tutorials on VGA passthrough (VFIO). Not only that, most computer users who want or need to use both Windows and Linux will find that this simple solution is all they need.

Continue reading “Why run Windows on Linux?”

Virtual Machines on UserBenchmark

For some years I have encouraged benchmarking of Windows virtual machines (VM), to help users fine-tune the configuration and to get a general idea of how efficient virtualization with Xen or KVM actually is. My benchmarks – posted under the username “powerhouse” – and those of other users can be found on the Linux Mint forum under Post your Passmark results of your Windows VM and UserBenchmark – post your results. When reviewing some of my benchmarks on the UserBenchmark website, it occurred to me that the information on that website can be put to  practical use.

Continue reading “Virtual Machines on UserBenchmark”

IOMMU Groups – What You Need to Consider

Summary

In this post I present some of the challenges you might face with IOMMU and provide tools to identify and perhaps solve the issues. Your best friend is the pciutils package and the lspci command (see here for examples).

What is IOMMU and why do I need it?

In my tutorial on how to run Windows 10 on Linux using KVM with VGA Passthrough the first and most important hardware requirement is the support for IOMMU – VT-d in Intel jargon, AMD-v or SVM in AMD talk. But what does IOMMU support mean? Continue reading “IOMMU Groups – What You Need to Consider”