On Tue, Jun 9, 2020 at 1:08 PM James Page <james.page@canonical.com> wrote:
Hi Neil



On Tue, Jun 9, 2020 at 11:59 AM Neil Jerram <neil@tigera.io> wrote:
I run tests with GCP instances as the OpenStack hypervisors.  Obviously it's better if those can use libvirt_type kvm, i.e. nested virtualization, and this has been possible prior to my current Ussuri upgrade work.

With Ussuri on Ubuntu, IIUC, we get qemu 4.2 from cloud-archive:ussuri, but qemu 4.2 has a bug that was fixed by this commit prior to 5.0.0: https://github.com/qemu/qemu/commit/4a910e1f6ab4155ec8b24c49b2585cc486916985

    target/i386: do not set unsupported VMX secondary execution controls

    Commit 048c951 ("target/i386: work around KVM_GET_MSRS bug for
    secondary execution controls") added a workaround for KVM pre-dating
    commit 6defc591846d ("KVM: nVMX: include conditional controls in /dev/kvm
    KVM_GET_MSRS") which wasn't setting certain available controls. The
    workaround uses generic CPUID feature bits to set missing VMX controls. [...]

The bug manifests on a GCP instance with nested virtualization enabled [1], because such a GCP instance doesn't support MSR features.  The OpenStack-level symptom is that a VM can't be scheduled onto that GCP instance.

Is this a well-known problem?  For CentOS/RHEL, [2] looks similar and maybe fixed, but it's difficult to be sure.

I could not an existing bug in Ubuntu describing these symptoms - any chance you can report a bug here:


Cheers

https://bugs.launchpad.net/ubuntu/+source/qemu/+bug/1882774