libvirt: use 'host-passthrough' as default on AArch64

Bug #1741230 reported by Marcin Juszkiewicz
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Fix Released
Medium
Unassigned
Pike
Fix Committed
Medium
Unassigned

Bug Description

At Linaro we have several instances of OpenStack running. Some are public, some private. Some at Newton, some at Pike and now some on Queens.

And always we have to set cpu_mode = 'host-passthrough' in [libvirt] section of nova.conf file.

As we use Kolla to build and deploy Queens I added workaround there which sets cpu_mode in proper way for AArch64. But this is workaround...

So I looked at code of Nova and created some quick hack: https://review.openstack.org/#/c/530965/

It works for us but may not be proper way of doing it.

We use Debian 'stretch' as host system with libvirt 3.10.0 backported from 'testing'.

Revision history for this message
Marcin Juszkiewicz (hrw) wrote :

snippet from nova-compute.log

Changed in nova:
assignee: nobody → Marcin Juszkiewicz (hrw)
status: New → In Progress
Revision history for this message
Marcin Juszkiewicz (hrw) wrote :
Revision history for this message
Marcin Juszkiewicz (hrw) wrote :
Revision history for this message
Marcin Juszkiewicz (hrw) wrote :

https://bugzilla.redhat.com/show_bug.cgi?id=1430987 also has interesting information on this issue.

Revision history for this message
Marcin Juszkiewicz (hrw) wrote :

With cpu_mode = custom + cpu_model = cortex-a53 (lowest nominator in AArch64) Nova errors out.

Changed in nova:
assignee: Marcin Juszkiewicz (hrw) → Kevin Zhao (kevin-zhao)
Changed in nova:
assignee: Kevin Zhao (kevin-zhao) → Stephen Finucane (stephenfinucane)
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (master)

Reviewed: https://review.openstack.org/530965
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=8bc7b950b7c0a3c80cdd120fe4df97c14848c344
Submitter: Zuul
Branch: master

commit 8bc7b950b7c0a3c80cdd120fe4df97c14848c344
Author: Marcin Juszkiewicz <email address hidden>
Date: Wed Jan 3 17:44:27 2018 +0100

    libvirt: use 'host-passthrough' as default on AArch64

    Nova is assuming 'host-model' for KVM/QEMU setup.

    On AArch64 it results in "libvirtError: unsupported configuration: CPU
    mode 'host-model' for aarch64 kvm domain on aarch64 host is not
    supported by hypervisor" message.

    AArch64 lacks 'host-model' support because neither libvirt nor QEMU
    are able to tell what the host CPU model exactly is. And there is no
    CPU description code for ARM(64) at this point.

    So instead we fallback to 'host-passthrough' to get VM instances
    running. This will completely break live migration, *unless* all the
    Compute nodes (running libvirtd) have *identical* CPUs.

    Small summary: https://marcin.juszkiewicz.com.pl/2018/01/04/today-i-was-fighting-with-nova-no-idea-who-won/

    Closes-bug: #1741230

    Co-authored-by: Kevin Zhao <email address hidden>
    Co-authored-by: Marcin Juszkiewicz <email address hidden>

    Change-Id: Iafb5f1790d68489db73b9f0549333108c6426a00

Changed in nova:
status: In Progress → Fix Released
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix proposed to nova (stable/pike)

Fix proposed to branch: stable/pike
Review: https://review.openstack.org/532504

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 17.0.0.0b3

This issue was fixed in the openstack/nova 17.0.0.0b3 development milestone.

Matt Riedemann (mriedem)
Changed in nova:
assignee: Stephen Finucane (stephenfinucane) → Marcin Juszkiewicz (hrw)
importance: Undecided → Medium
tags: added: aarch64 libvirt
Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix merged to nova (stable/pike)

Reviewed: https://review.openstack.org/532504
Committed: https://git.openstack.org/cgit/openstack/nova/commit/?id=50d8a07b3fa2fd8ee605691ee4f6148dd3a18a5f
Submitter: Zuul
Branch: stable/pike

commit 50d8a07b3fa2fd8ee605691ee4f6148dd3a18a5f
Author: Marcin Juszkiewicz <email address hidden>
Date: Wed Jan 3 17:44:27 2018 +0100

    libvirt: use 'host-passthrough' as default on AArch64

    Nova is assuming 'host-model' for KVM/QEMU setup.

    On AArch64 it results in "libvirtError: unsupported configuration: CPU
    mode 'host-model' for aarch64 kvm domain on aarch64 host is not
    supported by hypervisor" message.

    AArch64 lacks 'host-model' support because neither libvirt nor QEMU
    are able to tell what the host CPU model exactly is. And there is no
    CPU description code for ARM(64) at this point.

    So instead we fallback to 'host-passthrough' to get VM instances
    running. This will completely break live migration, *unless* all the
    Compute nodes (running libvirtd) have *identical* CPUs.

    Small summary: https://marcin.juszkiewicz.com.pl/2018/01/04/today-i-was-fighting-with-nova-no-idea-who-won/

    Closes-bug: #1741230

    Co-authored-by: Kevin Zhao <email address hidden>
    Co-authored-by: Marcin Juszkiewicz <email address hidden>

    Change-Id: Iafb5f1790d68489db73b9f0549333108c6426a00
    (cherry-picked from commit 8bc7b950b7c0a3c80cdd120fe4df97c14848c344)

Revision history for this message
OpenStack Infra (hudson-openstack) wrote : Fix included in openstack/nova 16.1.0

This issue was fixed in the openstack/nova 16.1.0 release.

To post a comment you must log in.
This report contains Public information  
Everyone can see this information.

Other bug subscribers

Remote bug watches

Bug watches keep track of this bug in other bug trackers.