mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-01 17:35:17 +00:00
qemu_capabilities: Report Hyper-V Enlightenments in domcapabilities
Inside of qemuCaps (for the corresponding accelerator) we have full host CPU expansion stored, among with supported Hyper-V Enlightenments. To report them in the domain capabilities, we just have to pick those starting with "hv-" and see if we know them. You may notice that neither of our domaincapsdata test shows any enlightenment. This is because the test works by parsing corresponding qemucapabilitiesdata/caps_*.xml file and none of these store the full host CPU expansion (hostCPU.fullQEMU) because that is runtime piece of information and not formatted into virQEMUCaps XML. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1717611 Signed-off-by: Michal Privoznik <mprivozn@redhat.com> Reviewed-by: Peter Krempa <pkrempa@redhat.com>
This commit is contained in:
parent
10f4784864
commit
903ea9370d
@ -6823,6 +6823,16 @@ virQEMUCapsFillDomainFeatureSGXCaps(virQEMUCaps *qemuCaps,
|
|||||||
virQEMUCapsSGXInfoCopy(&domCaps->sgx, qemuCaps->sgxCapabilities);
|
virQEMUCapsSGXInfoCopy(&domCaps->sgx, qemuCaps->sgxCapabilities);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
static void
|
||||||
|
virQEMUCapsFillDomainFeatureHypervCaps(virQEMUCaps *qemuCaps,
|
||||||
|
virDomainCaps *domCaps)
|
||||||
|
{
|
||||||
|
domCaps->hyperv = g_memdup(qemuCaps->hypervCapabilities,
|
||||||
|
sizeof(virDomainCapsFeatureHyperv));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
int
|
int
|
||||||
virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
|
virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
|
||||||
virArch hostarch,
|
virArch hostarch,
|
||||||
@ -6879,6 +6889,7 @@ virQEMUCapsFillDomainCaps(virQEMUCaps *qemuCaps,
|
|||||||
virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps);
|
virQEMUCapsFillDomainFeatureSEVCaps(qemuCaps, domCaps);
|
||||||
virQEMUCapsFillDomainFeatureS390PVCaps(qemuCaps, domCaps);
|
virQEMUCapsFillDomainFeatureS390PVCaps(qemuCaps, domCaps);
|
||||||
virQEMUCapsFillDomainFeatureSGXCaps(qemuCaps, domCaps);
|
virQEMUCapsFillDomainFeatureSGXCaps(qemuCaps, domCaps);
|
||||||
|
virQEMUCapsFillDomainFeatureHypervCaps(qemuCaps, domCaps);
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
@ -249,5 +249,23 @@
|
|||||||
<backup supported='yes'/>
|
<backup supported='yes'/>
|
||||||
<sev supported='no'/>
|
<sev supported='no'/>
|
||||||
<sgx supported='no'/>
|
<sgx supported='no'/>
|
||||||
|
<hyperv supported='yes'>
|
||||||
|
<enum name='features'>
|
||||||
|
<value>relaxed</value>
|
||||||
|
<value>vapic</value>
|
||||||
|
<value>spinlocks</value>
|
||||||
|
<value>vpindex</value>
|
||||||
|
<value>runtime</value>
|
||||||
|
<value>synic</value>
|
||||||
|
<value>stimer</value>
|
||||||
|
<value>reset</value>
|
||||||
|
<value>vendor_id</value>
|
||||||
|
<value>frequencies</value>
|
||||||
|
<value>reenlightenment</value>
|
||||||
|
<value>tlbflush</value>
|
||||||
|
<value>ipi</value>
|
||||||
|
<value>avic</value>
|
||||||
|
</enum>
|
||||||
|
</hyperv>
|
||||||
</features>
|
</features>
|
||||||
</domainCapabilities>
|
</domainCapabilities>
|
||||||
|
@ -248,5 +248,23 @@
|
|||||||
<backup supported='yes'/>
|
<backup supported='yes'/>
|
||||||
<sev supported='no'/>
|
<sev supported='no'/>
|
||||||
<sgx supported='no'/>
|
<sgx supported='no'/>
|
||||||
|
<hyperv supported='yes'>
|
||||||
|
<enum name='features'>
|
||||||
|
<value>relaxed</value>
|
||||||
|
<value>vapic</value>
|
||||||
|
<value>spinlocks</value>
|
||||||
|
<value>vpindex</value>
|
||||||
|
<value>runtime</value>
|
||||||
|
<value>synic</value>
|
||||||
|
<value>stimer</value>
|
||||||
|
<value>reset</value>
|
||||||
|
<value>vendor_id</value>
|
||||||
|
<value>frequencies</value>
|
||||||
|
<value>reenlightenment</value>
|
||||||
|
<value>tlbflush</value>
|
||||||
|
<value>ipi</value>
|
||||||
|
<value>avic</value>
|
||||||
|
</enum>
|
||||||
|
</hyperv>
|
||||||
</features>
|
</features>
|
||||||
</domainCapabilities>
|
</domainCapabilities>
|
||||||
|
@ -249,5 +249,23 @@
|
|||||||
<backup supported='yes'/>
|
<backup supported='yes'/>
|
||||||
<sev supported='no'/>
|
<sev supported='no'/>
|
||||||
<sgx supported='no'/>
|
<sgx supported='no'/>
|
||||||
|
<hyperv supported='yes'>
|
||||||
|
<enum name='features'>
|
||||||
|
<value>relaxed</value>
|
||||||
|
<value>vapic</value>
|
||||||
|
<value>spinlocks</value>
|
||||||
|
<value>vpindex</value>
|
||||||
|
<value>runtime</value>
|
||||||
|
<value>synic</value>
|
||||||
|
<value>stimer</value>
|
||||||
|
<value>reset</value>
|
||||||
|
<value>vendor_id</value>
|
||||||
|
<value>frequencies</value>
|
||||||
|
<value>reenlightenment</value>
|
||||||
|
<value>tlbflush</value>
|
||||||
|
<value>ipi</value>
|
||||||
|
<value>avic</value>
|
||||||
|
</enum>
|
||||||
|
</hyperv>
|
||||||
</features>
|
</features>
|
||||||
</domainCapabilities>
|
</domainCapabilities>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user