Xen PCI passthrough

I’m a Linux users since 2003, but I always had a dual boot machine, with a windows only to play games. I tried wine/cedega/crossover, but it doesn’t work with all games.

Xen and PCI passthrough, with a Linux host and Windows guest is the best setup I come up with.

I use Linux (Ubuntu) most of the time, and when I want to play, I just launch my windows virtual machine (it takes 30s), and I can play any game without performance loss (compared to having windows installed on the same computer). after playing (and even during the game) I can switch back to Ubuntu easily to check e-mail, browse the web, …

I posted a short video on Youtube to illustrate :

Steam and a few games are coming to Linux, but in the meantime, Virtual machine with PCI passthrough is the way to go !


7 responses to “Xen PCI passthrough

  1. Hi,
    I’ve read a post of your from the mailing lists, and I’m curious as to what you meant by “Use PCI Passthrough rather than VGA Passthrough.” How exactly are the two different with respect to passing through two cards. Is you Linux dom0 using the primary adapter or the secondary adapter?

    • it’s a little bit confusing, and I didn’t find any clear statement. but for me, VGA passthrough is when you have 1 graphic card, that you pass from host (Dom0) to the VM. this requires patching Xen and is experimental. Once you pass the card to the VM, your host as no more VGA adapter, so it can’t display anything.
      PCI passthrough works for all PCI devices (USB controller, SATA controller, and Graphic card). but the device must be dedicated either to the host or to the VM. So you need 2 graphics cards (1 for the VM, and 1 for the host). It works without patching, and is quite easy to setup.

      • Thanks for replying kdj0c..
        Perhaps you would care to offer some brief advice. My setup has two Radeons (5870 in Slot 0, primary) and (5570 in Slot 6, secondary). The BIOS will only boot from Slot 0, and I can’t switch the cards around due to space limitations in the case. VT-d is enabled.

        I can’t seem to successfully get the second card to work using PCI passthrough. I’ve gotten the card recognized in the domU (Win7 32-bit) but when the drivers load on boot it crashes (atikmpag.sys BSOD Error x116).

        I’m wondering if I can only passthrough the primary adapter (the one the BIOS uses for bootup). I just can’t understand why this isn’t working?

  2. there was one trick when installing the catalyst driver on the windows DomU. You should not install the catalyst control center, only the driver for the card. (There should be some kind of “manual” installation, where you can choose what to install. you can also boot in safe mode, and uninstall catalyst control center).

  3. hi,
    can you tell something about the cpu usage (linux host) while you are playing games in windows. if there is anything at all…

    • I was able to build a kernel with -j8, and play serious sam3 on windows VM at the same time. That was just for a test, because most of the time, my Linux doesn’t use much CPU when I’m playing game on windows VM :p
      also as I have 4 cores with HT (8 logical cores), and most games are still using only 2 or 3 cores, I never run into a CPU-bound case.

      • my chosen cpu will be a amd AMD A8-5600K or AMD A8-6600K APU plus discrete GPU.
        so the question is how much cpu-power need the host system.

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Google photo

You are commenting using your Google account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s