Bug 1531076

Summary: Support 'host-model' on aarch64
Product: [Community] Virtualization Tools Reporter: Marcin Juszkiewicz <mjuszkie>
Component: libvirtAssignee: Libvirt Maintainers <libvirt-maint>
Status: NEW --- QA Contact:
Severity: unspecified Docs Contact:
Priority: unspecified    
Version: unspecifiedCC: kchamart, libvirt-maint
Target Milestone: ---   
Target Release: ---   
Hardware: aarch64   
OS: Linux   
Whiteboard:
Fixed In Version: Doc Type: If docs needed, set a value
Doc Text:
Story Points: ---
Clone Of: Environment:
Last Closed: Type: Bug
Regression: --- Mount Type: ---
Documentation: --- CRM:
Verified Versions: Category: ---
oVirt Team: --- RHEL 7.3 requirements from Atomic Host:
Cloudforms Team: ---
Attachments:
Description Flags
nova log with domain xml none

Description Marcin Juszkiewicz 2018-01-04 14:30:14 UTC
Created attachment 1376987 [details]
nova log with domain xml

Description of problem:

Nova (OpenStack component) defaults to cpu_mode = host-model on all architectures. And then all VM instances fail:

"Failed to start libvirt guest: libvirtError: unsupported configuration: CPU mode 'host-model' for aarch64 kvm domain on aarch64 host is not supported by hypervisor."

Popular workaround is to use 'host-passthrough' but that breaks live migration on cloud setups with different ARMv8a cpu cores.

Version-Release number of selected component (if applicable):

3.10.0

How reproducible:

always

Steps to Reproduce:
1. Deploy Nova compute component
2. Run VM instance

Actual results:

"Failed to start libvirt guest: libvirtError: unsupported configuration: CPU mode 'host-model' for aarch64 kvm domain on aarch64 host is not supported by hypervisor."

Expected results:

Instance runs.
Additional info:

Comment 1 Marcin Juszkiewicz 2018-01-04 14:34:33 UTC
After some reading I tried 'cpu_mode=custom' + 'cpu_model=cortex-a53' but such setup broke Nova.

CPU snippet from domain definition was:

<cpu mode='custom' match='exact' check='partial'>
  <model fallback='allow'>cortex-a53</model>
  <topology sockets='1' cores='1' threads='1'/>
</cpu>