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

Bug #1741230 reported by Marcin Juszkiewicz on 2018-01-04
6
This bug affects 1 person
Affects Status Importance Assigned to Milestone
OpenStack Compute (nova)
Medium
Marcin Juszkiewicz
Pike
Medium
Marcin Juszkiewicz

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'.

Marcin Juszkiewicz (hrw) wrote :

snippet from nova-compute.log

Changed in nova:
assignee: nobody → Marcin Juszkiewicz (hrw)
status: New → In Progress
Marcin Juszkiewicz (hrw) wrote :
Marcin Juszkiewicz (hrw) wrote :

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

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)

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

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

Matt Riedemann (mriedem) on 2018-02-08
Changed in nova:
assignee: Stephen Finucane (stephenfinucane) → Marcin Juszkiewicz (hrw)
importance: Undecided → Medium
tags: added: aarch64 libvirt

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)

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  Edit
Everyone can see this information.

Other bug subscribers

Remote bug watches

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