Motherboard ITX system with Virtualization and GPU passthrough?

zovc

King of Cable Management
Original poster
Jan 5, 2017
852
603
Hey!

I am trying to get back to working on my personal SFF rig, and I'm at a bit of a crossroads when it comes to figuring out what hardware is ideal.

I want to run Linux as my primary OS, but I want to run a Windows 10 gaming VM with a video card handed over to it. I would also like for my gaming VM to be handed at least 4 cores and 8 threads from the CPU. RAM is negotiable, but obviously the more the merrier.

I currently have an i7-4790K, a Galax 1070 Mini, and a Logic Supply MC600 that I'm in the process of modding. I have a compatible motherboard and 16GB of RAM, and the system is in a bit of a transient state between cases and stuff, but that's because I'm trying to figure out how to make all this work.

  1. The first 'hack' I thought of was to use integrated graphics to drive Linux. Lots of modern boards have at least two video-outs that my host could use, letting me pass my entire GPU over to the system, whatever I go with. This setup is feasible with my current hardware, but my 16GB RAM cap discourages me, as does my limited number of cores and threads to divide between systems. Are there any ITX-friendly CPUs (or Chipsets) that have integrated graphics, ~6+ cores (~12+ threads), and support for more than 16GB of RAM? Are there any CPUs for that setup that are at least comparable in terms of single-threaded performance to my 4790K?
  2. The next solution I thought of was to simply get a GPU that would let multiple operating systems/hosts/clients use it all at once. I don't know anything about this realm of hardware besides that it's (normally?) ridiculously expensive and not really worth it for a casual user. Most of my gaming is done at 1080p, but I like to strive for 144+fps, and wouldn't appreciate more headroom for higher resolution gaming. Are there any cards that are in this ballpark and can fit into a small case like the Logic Supply MC600? I can mod the case to add a bit of extra length allowance, but at a certain point it'd defeat the purpose of using such a small case.
  3. Finally, a newer motherboard could support PCI bifurcation. If I went this route, I'd either have to shop for a worthwhile single-slot gaming card (the Galax 1070 Katana is much too long) or do some really janky heatsink hack and port removal on my 1070 mini which is scary, to say the least. But this solution is arguably budget friendly in the sense that just about any second single-slot card would get the job done for ordinary desktop Linux usage.
Any input or advice?

(I kind of went over this in my Build Log thread, but I figured this discussion might be worthwhile as a 'general' Hardware thread.)
 

jeshikat

Jessica. Wayward SFF.n Founder
Silver Supporter
Feb 22, 2015
4,969
4,780
Oh yeah, there are 16GB DDR3 sticks but I forgot they're not validated on most Haswell boards.

But Option 1 should still work fine even with the current setup. 2 threads and 2GB of RAM for the host and allocating the rest to the Windows VM should still be plenty of resources to run each of them.
 

zovc

King of Cable Management
Original poster
Jan 5, 2017
852
603
But Option 1 should still work fine even with the current setup. 2 threads and 2GB of RAM for the host and allocating the rest to the Windows VM should still be plenty of resources to run each of them.

I'll start looking into bifurcation with this board (kind of doubt anyone has tried it), but I'd like to upgrade my hardware if I can. Though, figuring out what upgrade path actually makes sense is pretty difficult. Haha.
 

analytic168

What's an ITX?
Jul 14, 2017
1
0
That's funny because I'm going through almost the exact same situation as you. I'm coming from a 4790K + NCASE M1, hoping to move to a Ryzen 1700 with similar goals: I'd like to run Windows and Linux together so that I don't need to reboot to switch between different workloads. I do a mix of playing Skyrim, build server, VM's, docker, Plex - each of which runs better or worse on Linux or Windows. I've tried various machine setups including dual-boot (or really, an OS on each HDD):

- Windows 10 host with Linux in Virtualbox
- Windows 10 Pro host with Linux in Hyper-V
- Linux host

They all have various caveats. (For example, I was unhappy running Docker for Windows. Next time I'll probably run Docker inside the Linux VM instead.) Honestly I think using Windows as the host works the best if you really need access to both OS's. I had it running reasonably well but I ran into instability with overclocking which I belatedly have realized was due to CPU temp problems.

In my case, I'm still examining all the options: making it run Linux primarily (rebooting to get into Windows). Or running them as separate machines entirely - the Inwin Chopin is looking pretty good - and in my case the Linux box doesn't need a head (monitor or video) at all. Or now that I've resolved (I think) the CPU instability issues, I may give Windows host yet another shot. I've probably installed Manjaro half a dozen times in the course of this.

I'm guessing you've seen the instructions on Arch wiki for KVM PCIe pass-through and I think there's a reddit thread on this as well?
 

zovc

King of Cable Management
Original poster
Jan 5, 2017
852
603
I'm guessing you've seen the instructions on Arch wiki for KVM PCIe pass-through and I think there's a reddit thread on this as well?

I haven't seen anything specifically for Ryzen, but I have set up a server with GPU passthrough and two gaming VMs on it before. I can't say I retained a whole lot of what I did, but I'm sure I'd run into less silly roadblocks the second time around.

My ideal use-case isn't really compatible with running Windows as my host machine, as the main reason I want to switch to Linux as my 'primary' OS is for the sake of privacy and security. For a while I was looking into building my own tweaked version of Windows 10 (see LTT's "Windows 9" video), but even then there's a lot of scary stuff going on these days that target 'quiet' vulnerabilities in Windows that I don't want to have to keep up with.

I've been using Windows with some sense of peace of mind and security for a while now, so I can live with continuing to use it as my primary OS. I just feel like there's a lot of reasons to switch to Linux that outweigh sticking with windows at this point, personally. But all that said, my intended of usage of Linux here would require its own monitor and keyboard and mouse as it'd be the environment that I'd be doing my daily web browsing and whatnot in.
 
  • Like
Reactions: mantide

sodhc718

Efficiency Noob
Jul 13, 2017
5
1
That M.2 adapter is interesting, but is it worth giving up a slot over just using bifurcation?

Are you looking at any particular video cards?
Yeah, I'm not going to use M.2 SSD so giving up a slot is not a problem. Beside that, M.2 slot in AM4 itx boards on back of the board, and this area seem pretty hot, so I don't want to risk my SSD lifetime with high temps. I'm planning use lowend GPU for just video output and will buy highend GPU later
 

mantide

Trash Compacter
Sep 17, 2016
42
23
Hey!

I am trying to get back to working on my personal SFF rig, and I'm at a bit of a crossroads when it comes to figuring out what hardware is ideal.

I want to run Linux as my primary OS, but I want to run a Windows 10 gaming VM with a video card handed over to it. I would also like for my gaming VM to be handed at least 4 cores and 8 threads from the CPU. RAM is negotiable, but obviously the more the merrier.

I currently have an i7-4790K, a Galax 1070 Mini, and a Logic Supply MC600 that I'm in the process of modding. I have a compatible motherboard and 16GB of RAM, and the system is in a bit of a transient state between cases and stuff, but that's because I'm trying to figure out how to make all this work.

  1. The first 'hack' I thought of was to use integrated graphics to drive Linux. Lots of modern boards have at least two video-outs that my host could use, letting me pass my entire GPU over to the system, whatever I go with. This setup is feasible with my current hardware, but my 16GB RAM cap discourages me, as does my limited number of cores and threads to divide between systems. Are there any ITX-friendly CPUs (or Chipsets) that have integrated graphics, ~6+ cores (~12+ threads), and support for more than 16GB of RAM? Are there any CPUs for that setup that are at least comparable in terms of single-threaded performance to my 4790K?
  2. The next solution I thought of was to simply get a GPU that would let multiple operating systems/hosts/clients use it all at once. I don't know anything about this realm of hardware besides that it's (normally?) ridiculously expensive and not really worth it for a casual user. Most of my gaming is done at 1080p, but I like to strive for 144+fps, and wouldn't appreciate more headroom for higher resolution gaming. Are there any cards that are in this ballpark and can fit into a small case like the Logic Supply MC600? I can mod the case to add a bit of extra length allowance, but at a certain point it'd defeat the purpose of using such a small case.
  3. Finally, a newer motherboard could support PCI bifurcation. If I went this route, I'd either have to shop for a worthwhile single-slot gaming card (the Galax 1070 Katana is much too long) or do some really janky heatsink hack and port removal on my 1070 mini which is scary, to say the least. But this solution is arguably budget friendly in the sense that just about any second single-slot card would get the job done for ordinary desktop Linux usage.
Any input or advice?

(I kind of went over this in my Build Log thread, but I figured this discussion might be worthwhile as a 'general' Hardware thread.)

Running Linux as host and windows as VM is the only way to go.
I am glad more and more people are realizing this.
Despite intel still has backdoors built in every CPU they sold.
At least this would reduce the possibility of being hacked somehow.

My suggestion is :
Wait for coffee lake next month. 4 Threads for Linux and the rest 8 threads goes to Windows. 32 GB DDR4 memory.
That's what I am doing now. Just a little patience.
And believe me, whatever you do, you will regret all the work you've done for the dual GPU modification.
Because your set up won't last for more than 12 months before you have a new idea.(Just talking from my own experience)

And, cannon lake CPU will support native thunderbolt 3. And no Thunderbolt 3 certification mess is needed for manufacturer to build anything. It might be easier to pass through the thunderbolt controller.
I just got my Aorus Gaming Box. It's really good. Feels like future.
My ideal set up would be an STX motherboard with thunderbolt 3 connected to external GPU. For now I am just using AsRock Z270 ITX because it has a thunderbolt port.
STX case + Aorus Gaming Box would still be smaller than MC600. And it is modular.
I believe the day is approaching.
 
Last edited: