Set cpu_mode to "none" when virt_type is qemu
The Nova code states that the default value for cpu_mode when using
qemu as virt_type should be host-model [1]. However, this is not
actually tested in the gate due to [2], and with QEMU 2.6.0 it is
known to cause issues [3], because there is a chance a new CPU
flag is used, but not emulated by QEMU TCG code.
Setting cpu_mode to "none" in this case as default would prevent us
from hitting issues when this code is most exercised, i.e. CI
environments.
[1] f419825c21/nova/conf/libvirt.py (L442-L448)
[2] https://github.com/openstack-dev/devstack/blob/master/lib/nova_plugins/hypervisor-libvirt#L42
[3] https://bugzilla.redhat.com/show_bug.cgi?id=1404627
Depends-On: I687bc765b77638096b47f823e3a784ce7c8c120f
Change-Id: Ic95755a927eef0580433cd5c8eca1c4c7cad2f69
This commit is contained in:
parent
8787536d1d
commit
7ee2563aed
@ -24,8 +24,8 @@
|
||||
# [*libvirt_cpu_mode*]
|
||||
# (optional) The libvirt CPU mode to configure. Possible values
|
||||
# include custom, host-model, none, host-passthrough.
|
||||
# Defaults to 'host-model' if libvirt_virt_type is set to either
|
||||
# kvm or qemu, otherwise defaults to 'none'.
|
||||
# Defaults to 'host-model' if libvirt_virt_type is set to kvm,
|
||||
# otherwise defaults to 'none'.
|
||||
#
|
||||
# [*libvirt_cpu_model*]
|
||||
# (optional) The named libvirt CPU model (see names listed in
|
||||
@ -132,7 +132,7 @@ class nova::compute::libvirt (
|
||||
# libvirt_cpu_mode has different defaults depending on hypervisor.
|
||||
if !$libvirt_cpu_mode {
|
||||
case $libvirt_virt_type {
|
||||
'kvm','qemu': {
|
||||
'kvm': {
|
||||
$libvirt_cpu_mode_real = 'host-model'
|
||||
}
|
||||
default: {
|
||||
|
@ -0,0 +1,10 @@
|
||||
---
|
||||
upgrade:
|
||||
- The default value for nova::compute::libvirt::libvirt_cpu_mode
|
||||
when nova::compute::libvirt::libvirt_virt_type is set to 'qemu'
|
||||
has been changed from 'host-model' to 'none'. The Nova gate
|
||||
does not really test the 'host-model' option in their CI, but
|
||||
'none' due to Devstack configuration, and it is known to create
|
||||
issues with QEMU 2.6 (see
|
||||
https://bugzilla.redhat.com/show_bug.cgi?id=1404627).
|
||||
|
@ -71,6 +71,12 @@ describe 'basic nova' do
|
||||
virtlock_service_name => false,
|
||||
virtlog_service_name => false,
|
||||
}
|
||||
# FIXME(jpena): this is only here to avoid an attempted downgrade
|
||||
# of qemu-kvm-ev. Remove after https://review.openstack.org/411179
|
||||
# is merged
|
||||
if $::osfamily == 'RedHat' {
|
||||
Package['qemu-kvm-ev'] -> Class['nova::compute::libvirt::services']
|
||||
}
|
||||
class { '::nova::scheduler': }
|
||||
class { '::nova::vncproxy': }
|
||||
|
||||
|
@ -123,6 +123,14 @@ describe 'nova::compute::libvirt' do
|
||||
it { is_expected.to contain_nova_config('libvirt/cpu_model').with_value('kvm64')}
|
||||
end
|
||||
|
||||
describe 'with qemu as virt_type' do
|
||||
let :params do
|
||||
{ :libvirt_virt_type => 'qemu' }
|
||||
end
|
||||
|
||||
it { is_expected.to contain_nova_config('libvirt/cpu_mode').with_value('none')}
|
||||
end
|
||||
|
||||
describe 'with migration_support enabled' do
|
||||
|
||||
context 'with vncserver_listen set to 0.0.0.0' do
|
||||
|
Loading…
Reference in New Issue
Block a user