VFIO Chipsetdriver for multi chiplet X3D?

Hi,
tomorrow my order for either an 7900X3D (preferred) or an 7950X3D goes out.

https://twitter.com/aschilling/status/1630266885508833283/photo/1

looks like core number is symmetrical.
So for vfio either buy 7950X3D for a huge $ and make a 8c8t "7800X3D"VM or fiddle with miexed cores :confused:
7950X3D feels kind of wasted on my small linux footprint tho :frowning:

Since my VM Setup includes 8c8t i wonder if it is possible to install the optimization part for X3D from the Chipset into a VM.
(i guess installing chipsetdrivers into a VM is not the best idea).

Does anyone have experience with this and/or can give some advice?

with kind regards

This is bleeding edge tech, I doubt anyone has experience with this.

guess someone has to be first :smiley:
if for some reson the 7900X3D will have 8c+vcash in one die its all good for me ^^
Otherwise i might play it save (and overpriced) and go for the 7950X3D and just tell the VM its an 7800X3D

I’m in the exact same boat, currently to upgrade my VFIO setup to AM5.

Since my VM Setup includes 8c8t i wonder if it is possible to install the optimization part for X3D from the Chipset into a VM.

I asked myself the same question, but I figured maybe we don’t need that inside the VM. At minimum, we should not need the xbox game bar. Since if we only pass through either the frequency cores or the v-cache cores, windows wont be able to schedule on the wrong cores anyways.

In theory, this would allow me to create different pins depending on whether I want to have cache or higher frequency inside the VM.

if I may ask, I’m still struggling a lot on the mainboard choice. Which one did you go for?

2 Likes

hm … that might be the reason i would opt for the 7950X3D and only pass the VCache die (as 7800X3D).

But i would love the 7900X3D even more. Its a better value part for me. even if i only pass 6c6t vcache and 2c2t high frequency. (with dirver that would be)

or even more lucky if the 7900X3D is not symetrical and has 8c8t vcahe + 4c4t high frequency xD

click on this link to see my awnser:

:smiley:

looks like core number is symmetrical.
So for vfio either buy 7950X3D for a huge $ and make a 8c8t "7800X3D"VM or fiddle with miexed cores :confused:
7950X3D feels kind of wasted on my small linux footprint tho :frowning:

I love the 7950X3D because, assuming it works like I imagine with vfio, it fits my usecase exactly.

The things that bother me is the price as well as the reliance on the scheduler and the tight integration into windows to actually make it perform.

On windows, to allow it to schedule on the v-cache cores you need xbox game bar, windows needs to be set to balanced power mode and you need to rely on the OS to the correct cores. I kinda feel bad paying 700€ for those requirements

why you would need gamebar ?
for baremetal windows you only need latest chipsetdriver as far as i know.
if you build vfio i would assume that passing through only the vcache die and telling the vm its a 7800X3D would work like a charm :smiley: (for the 7950X3D at least)

I really would love to cheap out an just get he 7900X3D but i worry that a 6c6t vcache + 2c2t normal windows VM would not be wise.

but i really dont need the 8c8t normal die for linux.
i basically watch vidos and make office stuff on my linux. that’s it.

Basically every review I watched/read so far emphasized that you need the game bar. One also mentioned that AMD listed it as a requirement but I was not able to find a source for that yet.

thefpsreview . com/2023/02/27/amd-ryzen-9-7950x3d-gaming-performance-cpu-review/2/

Also the GN review specifically mentioned the xbox gamebar (and all the other requirements)

Timestamped source:
youtu . be/9gCzXdLmjPY?t=1500

(All links are assemble yourself)

looks like you can install optimizations as standalone :smiley:

states what i think. AMD uses the gamebar to detect if an application should be prioritized as cache sensitive app.
But you can also do this manually in BIOS or via CMD. Imo at some later point there will be launch commandas and/or tools to set applications to vcache or highfrequency CCDs (:

I guess ill bite the bullet for the overpriced 7950X3D and spent my XMAS Money on it. Just so i can tell the VM it is a 7800X3D

1 Like

I am in the same sport right now…
However, I am a bit concerned about pinning the 7950X3D…
What I know, and correct me if I am wrong, is that Linux Kernel uses Cores 0-1, and you cannot pin or slice them into the VM.

So, how would you pass Cores 0-7 into the VM?

that is new information to me :frowning:
but to be honest i kinda regret my AM5 upgrade so far.
Sure the platform is nice the 990 pro is a big upgrade to my 960 and i even got a current gen gpu.
But for what ? I sold my 6800XT for only 50bucks loss end of last year.
So i was limping on the gpu side.
But there are no games worth playing (for me) i only from time to time play dota2 and a little planetside2.
ALl the games i liked to try are banning vms … so i wont risk my steam account.

Thats why i canceled my 7950X3D order and wait for the 7800X3D.

6C pass through with a good gpu is good enough for all current gen games. And if the market shifts an suddenly there will be games worth while i can upgrade again with hopefully better pricing.

TL:DR i wait for the 7800X3D

You are wrong :slight_smile:

I have been running my system on cores 20-23,44-47 (four cores, eight paired threads, third CCD) for almost two years now, and pin one of my VMs (Windows 10 - 3070Ti) to cores 0-6 (and associated threads 24-30) on my first CCD

root@pve:~# cset shield
cset: --> shielding system active with
cset: "system" cpuset of CPUSPEC(20-23,44-47) with 814 tasks running
cset: "user" cpuset of CPUSPEC(0-19,24-43) with 22 tasks running
root@pve:~#
2 Likes

If you are using Kvm, you use pinning, but before that, you have to tell your Linux OS to stay away from said cores by using cshield

How to achieve that depends on whether you are using plain linux and libvirt or proxmox. The shielding also may require dirrent commands/boot parameters depending on Linux distribution/kernel version

1 Like

I am using Manjaro KDE and libvirt and currently I am using “vfio-isolate” to slice cores, but runs on VM boot.
Is there any other/better way to do it?

Nope, it uses the same functionality (cshield), just wraps it on a single command that handles vfio as well

from the readme:

https://github.com/spheenik/vfio-isolate
The command to use would be this:

 # vfio-isolate \ 
    cpuset-create --cpus C0-1,6-7 /host.slice \
    move-tasks / /host.slice

If your 3dVcache CCD cores are, for example, 0-7,16-23
You could:

 # vfio-isolate \ 
    cpuset-create --cpus C8-15,24-31 /host.slice \
    move-tasks / /host.slice

And move all hypervisor and normal OS threads to the non 3dVcache cores, then you pin the remaining ones to your VM using standard libvirt commands (also in the readme)

5 Likes

Thank you! Read the info long time ago and didn’t review recently

Can somebody ellaborate on this, is it possible to tell a VM it is using CPU X and not the host CPU?

I want to minimize hardware fingerprinting. Hiding the actual CPU or spoofing it with a list of popular CPU strings might be an option. But is this even possible?

I do not know enough about what VMs can do with the CPU and how much they can ‘profile’ the actual hardware.

i assumed it would be possible since i always used cpu host pass through.

if i google libvirt cpu model there are plenty of documentation regarding this:
https://wiki.openstack.org/wiki/LibvirtXMLCPUModel

so i guess telling it its a 7800X3D should not be a problem but i dont know that for sure

1 Like

I’m not sure why you would need to ‘tell’ the VM what kind of CPU it is, if all cores are the same (i.e. you pass only V-Cache cores)? Why would it make a difference?

because if you make host pass through you tell windows it needs to park cores …
and i dont trust windows to to the right thing and analysis which cores are present if only 8 of 16 cores are available on a 7950X3D