Description of problem:
Removing kvm_intel model and inserting it back with different parameters can
influence QEMU capabilities, such as CPU features available on the host. For
example, changing nested or pt_mode parameters may change availability of vmx
or intel-pt features respectively. The nested parameter is already checked by
libvirt in virQEMUCapsKVMSupportsNesting and capabilities cache is properly
invalidated when the value of nested parameter changes. Changing pt_mode does
not invalidate the cache, though.
Version-Release number of selected component (if applicable):
libvirt-6.6.0-5
How reproducible:
always
Steps to Reproduce:
1. prepare an Icelake-Server host
2. virsh domcapabilities
3. modprobe -r kvm_intel
4. modprobe kvm_intel pt_mode=1
5. virsh domcapabilities
Actual results:
In step 2. the <mode name='host-model' supported='yes'> element will contain
Icelake-Server CPU model and intel-pt with policy='disable'.
In step 5. the output will be exactly the same as in step 2.
Expected results:
The intel-pt feature with policy='disable' should disappear from the <mode
name='host-model' supported='yes'> element. This means intel-pt can be
enabled, because libvirt consideres it a part of Icelake-Server CPU model.