I’m looking for a new Qubes laptop (I buy them refurbished, please don’t recommend me one of these certified laptops unavailable on ebay), and I’ve learned about SR-IOV available on Intel gen 12 CPU. There are few topics on this forum about it, and how to get unofficial support. I would like some help to clarify the info I got here.
According to Intel there could be SR-IOV support on laptops starting with the Intel 12th gen, and according some Phoronix article, the supported GPU. Do they have an official implementation of SR-IOV and is it working on QubesOS, or are the strongtz patches the only way to currently get it working ?
It looks like there are 2 intel GPU drivers with some generation overlap : the i915 (up to Meteor Lake and Arrow Lake) and Xe (with experimental support starting from gen 12). Do both of them support SR-IOV ? Is there one recommended over the other ?
Is there anything about SR-IOV support on Core Ultra 1st gen ? I’ve read here there isn’t any support for Meteor Lake, but that’s about the Xe driver, and one year ago.
I’ve reduced my choice between an Elitebook 640 G9 (with intel gen 12) and a thinkpad L14 G5 (with a core ultra 1st gen). Would there there be a reason to select one of this model over the other ?
I can confirm it working on Novacustom v64 (Meteor Lake) with strongtz. Unfortunately there is a major memory issue currently causing the guest shared memory to leak and, at some point, to overflow with the need to restart the guest. Here is the corresponding github issue: Catastrophic shmem leak on kernel 6.19.5 · Issue #425 · strongtz/i915-sriov-dkms · GitHub I am still using it as VMs are running much more fluid with the driver, especially browsing and watching movies, but you have to accept guest restarts once a day.
Other than that I am not aware of any way to get GPU power into VMs without dedicated GPU and its passthrough.
If you knew that before hand, would take a laptop with an other CPU, even if it’s few generation older, or would you still take this one (a more recent one not being an option) ?
It depends how you plan to to split your VMs. For me I have 3 VMs, where I require GPU:
work => my work VM where I am doing a lot of work including accessing systems via browser
personal => a VM that is only used for browsing trusted systems
personal-browsing => general browsing vm using sys-whonix
Here a single dGPU would not help, therefore having 7 vGPUs that I can assign to all of them makes much more sense. If you plan to use 1 VM for all those use cases (maybe including gaming), then a dedicated GPU should be the solution for you. But then the question is: why using Qubes at all
If you still plan to split your VMs but only start a single one with the dGPU and switch to another by stopping the first one, then a restart of VM once a day with the vGPU concept would be much more flexible.
For me I’d always try to get the most recent hardware if possible, as it makes QubesOS run better. But the HCL list provides a lot of options also with older hardware and people claim the OS runs fine, so why not
I’ll have something like 3-4 VM using SR-IOV, maybe one other time-to-time. The use cases are more or less the same than yours, with maybe an additional one for small games. With a simple dGPU, Teams calls, youtube, browsing, etc can be painful.
Both of the laptop models I mentionned can in theory have SR-IOV : one is with an Intel Gen 12 (I think it’s an Alder Lake) and the other with a Core Ultra 1st gen (Meteor Lake). My question was between the 2 of them, from your experience (outside of the memory leak) is SR-IOV good enough with a Meteor Lake, or do you think it would work better with an Alder Lake CPU (which is few generation older) ?
My concern would be to take the laptop which will have the most reliable SR-IOV support. If the setup is similar between an Alder Lake CPU and a Meteor Lake one, I’ll take the most recent one. If the Alder Lake could have a mainstream support and not the Meteor Lake, then I’ll take the Alder Lake one.
There is also the driver question, Meteor Lake CPU have an experimental support with the Xe driver, does it provide more performances or is it bugged ?
I don’t think this is really an option for us “normal” users I still hope the QubesOS team’s work on vGPU support will succeed at some point and no third party solution will be required any more.
This is difficult to say for me whether there is a major difference between the CPUs you are mentioning. I only tested SR-IOV support with Meteor Lake as I don’t have other hardware available. Maybe you can ask on github for a recommendation and differences between those two.
Not talking about SR-IOV. The QubesOS team already had some research on vritio-GPU mplementations. You can check the overall progress here: GPU acceleration · GitHub Nobody can tell if and when something will be actually delivered to users, but at least there is some work done and I hope it will bring a good solution eventually.
Then the third party kernel module might not be the best bet, as it is clearly defined as beta and mentions possible instabilities. I have not faced any till now, but that does not mean those do not exist.
that lists Vega support. Promotional materials for AMD CPUs claim the 780M is a Vega.
The Open-IOV page seems to say a driver for AMD “could be written”, except that “the amdgpu kernel module doesn’t contain hooks for guest signalling via irqfd & ioeventfd used for VFIO-mdev callbacks”. So I guess it is just theoretical at this point.