Re: [PATCH] qemu: do not use domain virt type to get default version

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



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"),




[Index of Archives]     [Virt Tools]     [Libvirt Users]     [Lib OS Info]     [Fedora Users]     [Fedora Desktop]     [Fedora SELinux]     [Big List of Linux Books]     [Yosemite News]     [KDE Users]     [Fedora Tools]

  Powered by Linux