Hi Cole,
I saw you are the last one working on this part, even quite long time
ago, :-)
Could you give it a quick review? I just want to know the if small
change messed something else,
or maybe not worth to change it.
Thanks,
Liang
On 4/28/22 09:39, Liang Yan wrote:
Could anyone give it a review? Thanks.
A scenario is that it will cause below error when disabled tcg from
qemu side:
lyan@xryan:~/virt/qemu$ virsh version
Compiled against library: libvirt 8.0.0
Using library: libvirt 8.0.0
Using API: QEMU 8.0.0
error: failed to get the hypervisor version
error: internal error: Cannot find suitable emulator for x86_64
I am not sure if it is expected. From my understanding, it may not be
reasonable, because hypervisor could also use kvm or hvf. My first
thought was to add more domain virt type to
'virQEMUCapsGetDefaultVersion', but after looking into
'virCapabilitiesDomainDataLookupInternal', I noticed that it works
same if I set domain virt type to 'NONE', it will iterate all domains
to find a 'emulator' and 'guest' based on 'ostype' and 'arch'. This is
a version issue so no need to change qemu capabilities cache search
logic which I am not quite familiar with.
Let me know if there are any problems, thanks.
Regards,
Liang
On 4/26/22 16:38, Liang Yan wrote:
We do not need VIR_DOMAIN_VIRT_QEMU to get qemu default
version. With the 'os_type' and 'arch'in capabilities,
we could identify 'emulator' which is enough to get the version.
Actually VIR_DOMAIN_VIRT_QEMU is not the only domain virt type for
qemu driver, there are VIR_DOMAIN_VIRT_KVM and VIR_DOMAIN_VIRT_HVF.
If TCG is disabled in qemu, it will cause the error that could not
find suitable emulater when access version.
Signed-off-by: Liang Yan <lyan@xxxxxxxxxxxxxxx>
---
src/qemu/qemu_capabilities.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/src/qemu/qemu_capabilities.c b/src/qemu/qemu_capabilities.c
index b91db851bb..9a0b7ebeb4 100644
--- a/src/qemu/qemu_capabilities.c
+++ b/src/qemu/qemu_capabilities.c
@@ -1857,7 +1857,7 @@ int virQEMUCapsGetDefaultVersion(virCaps *caps,
hostarch = virArchFromHost();
if (!(capsdata = virCapabilitiesDomainDataLookup(caps,
- VIR_DOMAIN_OSTYPE_HVM, hostarch, VIR_DOMAIN_VIRT_QEMU,
+ VIR_DOMAIN_OSTYPE_HVM, hostarch, VIR_DOMAIN_VIRT_NONE,
NULL, NULL))) {
virReportError(VIR_ERR_INTERNAL_ERROR,
_("Cannot find suitable emulator for %s"),