Description of problem: host-passthrough is the highest performance option, which also the recommended option for nested guest support. The main downside of this setting the machines can be live-migrated only fully matching CPU. Version-Release number of selected component (if applicable): openstack-packstack-12.0.0-0.20180327155808.90cd9d5.el7ost.noarch
When using kvm virt_type, cpu_mode is set to host-model. With host-passthroug, libvirt tells KVM to pass through the host CPU with no modifications while host-model identifies the CPU model in /usr/share/libvirt/cpu_map.xml file that most closely matches the host, and requests additional CPU flags to complete the match. This configuration provides the maximum functionality and performance and maintains good reliability and compatibility if the guest is migrated to another host with slightly different host CPUs. I'd say that in most cases it should not make big difference between host-model and host-passthrough and i don't like changing defaults in this case. Are you observing relevant performance in your test environment?. If so, we may add a new config option in packstack to set cpu_mode.
http://openstack-in-production.blogspot.com/2015/08/cpu-model-selection-for-high-throughput.html In the above reports you can read just 4..5% percent benefit, but in case on nested guest usage I can have situation when it is two times better (parallel boot test multiple cirros machines). IMHO in packstack case more likely the user have nested guests than having multiple hypervisors, so it is better to optimize nested guest usage or assume one machine and provide the best possible performance. But there can be exceptions, so might be better to just provide it as an option. NOTE: 'host-passthrough' is valid only for kvm, not for qemu .
OSP13 support officially ended on 27 June 2023