On 3/16/23 11:56, Jim Fehlig wrote:
On 3/15/23 08:40, Ján Tomko wrote:
On a Monday in 2023, Jim Fehlig wrote:
If an explicit machine type is not specified in the VM config, the qemu driver will select the first machine type in the list of machine types for the specified accelerator. See virQEMUCapsGetPreferredMachine

https://gitlab.com/libvirt/libvirt/-/blob/master/src/qemu/qemu_capabilities.c#L6133

On my test machines, this works reasonably well for x86_64 where the first machine type is pc-i440fx-7.1. But for aarch64, the first machine is integratorcp, which is not very useful with maxCpus=1 and other limitations.

Is it possible to run such machine with libvirt?

I just did a quick check with libvirt 9.1.0 (qemu is a bit older, at 7.1.0):

# cat test.xml
<domain type='kvm'>
   <name>test</name>
   <memory unit='KiB'>2097152</memory>
   <vcpu placement='static'>1</vcpu>
   <os>
     <type>hvm</type>
    <loader readonly='yes' type='pflash'>/usr/share/qemu/aavmf-aarch64-code.bin</loader>
     <nvram template='/usr/share/qemu/aavmf-aarch64-vars.bin'/>
     <boot dev='hd'/>
   </os>
   <clock offset='utc'/>
   <on_poweroff>destroy</on_poweroff>
   <on_reboot>restart</on_reboot>
   <on_crash>destroy</on_crash>
   <devices>
     <emulator>/usr/bin/qemu-system-aarch64</emulator>
     <disk type='file' device='disk'>
       <driver name='qemu' type='qcow2' discard='unmap'/>
       <source file='/var/lib/libvirt/images/test.qcow2'/>
       <target dev='vda' bus='virtio'/>
     </disk>
   </devices>
</domain>

To be fair, this config does not work when specifying machine='virt'

# virsh create test.xml
error: Failed to create domain from test.xml
error: internal error: process exited while connecting to monitor: 2023-03-16T21:37:30.895916Z qemu-system-aarch64: KVM is not supported for this guest CPU type 2023-03-16T21:37:30.895989Z qemu-system-aarch64: kvm_init_vcpu: kvm_arch_init_vcpu failed (0): Invalid argument

It worked after adding

<cpu mode='host-passthrough'/>

# virsh create test.xml
error: Failed to create domain from test.xml
error: internal error: Unexpected enum value 0 for virDomainDeviceAddressType


The same error occurs with host-passthrough CPU and default machine type.

Regards,
Jim

Reply via email to