[gnome-boxes/use-host-model-cpu-mode-for-qemu-emulation] vm-configurator: Use host-model cpu mode when using QEMU emulation




commit 47147b0072fc612f1f13c4fd812464c0fd383ca3
Author: Felipe Borges <felipeborges gnome org>
Date:   Mon May 16 16:17:42 2022 +0200

    vm-configurator: Use host-model cpu mode when using QEMU emulation
    
    When native virtualization isn't available we use qemu emulation,
    which doesn't work with the host-passthrough CPU mode.

 src/vm-configurator.vala | 7 ++++---
 1 file changed, 4 insertions(+), 3 deletions(-)
---
diff --git a/src/vm-configurator.vala b/src/vm-configurator.vala
index 6d817df7..8e9f83f4 100644
--- a/src/vm-configurator.vala
+++ b/src/vm-configurator.vala
@@ -54,9 +54,10 @@ public static Domain create_domain_config (InstallerMedia install_media, string
 
         var best_caps = get_best_guest_caps (caps, install_media);
         domain.memory = install_media.resources.ram / KIBIBYTES;
-        set_cpu_config (domain, caps);
 
         var virt_type = guest_kvm_enabled (best_caps) ? DomainVirtType.KVM : DomainVirtType.QEMU;
+        set_cpu_config (domain, caps, virt_type);
+
         domain.set_virt_type (virt_type);
 
         set_os_config (domain, install_media, best_caps, domain_caps);
@@ -223,7 +224,7 @@ private static void mark_as_installed (Domain domain, InstallerMedia? install_me
         update_custom_xml (domain, install_media, 0, true);
     }
 
-    private static void set_cpu_config (Domain domain, Capabilities caps) {
+    private static void set_cpu_config (Domain domain, Capabilities caps, DomainVirtType virt_type = 
DomainVirtType.KVM) {
         var cpu_caps = caps.get_host ().get_cpu ();
         var topology = cpu_caps.get_topology ();
 
@@ -233,7 +234,7 @@ private static void set_cpu_config (Domain domain, Capabilities caps) {
         domain.vcpu = topology.get_sockets () * topology.get_cores () * topology.get_threads ();
 
         var cpu = new DomainCpu ();
-        cpu.set_mode (DomainCpuMode.HOST_PASSTHROUGH);
+        cpu.set_mode (virt_type == DomainVirtType.QEMU ? DomainCpuMode.HOST_MODEL : 
DomainCpuMode.HOST_PASSTHROUGH);
         cpu.set_topology (topology);
 
         domain.set_cpu (cpu);


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