I recently got a Razer Blade (Razer Blade 17 _2022_ - RZ09-0423) which shipped with a 12th Gen Intel® Core™ i9-12900H × 20. Using
<model fallback='allow'>Skylake-Client-noTSX-IBRS</model>
was not going to work.
I ran
virsh capabilities
and learned that I have a
<model>Broadwell-noTSX-IBRS</model>
Before I installed my Windows 11 VM under KVM in Ubuntu 22.04.3, I edited the CPU XML configuration, and removed host-passthrough and manually used just this. Note: "cores=8" because the number of vCPUs allocated to my Windows 11 machine was 8. You will want these numbers to match, or Virtual Machine Manager will complain.
<cpu mode="custom" match="exact" check="partial">
<model fallback="allow">Broadwell-noTSX-IBRS</model>
<topology sockets="1" dies="1" cores="8" threads="1"/>
<feature policy="disable" name="hypervisor"/>
<feature policy="require" name="vmx"/>
<feature policy="disable" name="mpx"/>
</cpu>
This worked with great success. Windows 11 installed successfully, and I got an Ubuntu WSL 2 instances running inside my WIndows 11 VM. Attempting to change the CPU XML configurations in Virtual Machine Manager AFTER installing Windows 11 was a fool's errand.
The performance hit may likely be remediated by appending the other CPU features as outlined in virsh capabilities.
EDIT:
I was able to simplify my CPU configuration to be just this:
<cpu mode="custom" match="exact" check="partial">
<model fallback="allow">Broadwell-noTSX-IBRS</model>
<feature policy="require" name="vmx"/>
</cpu>