[nova] Add flag to set libvirt tb_cache_size
A config option is being added in nova with [1]
in order to allow configuring lower tb-cache size
for qemu guest VMs.
This patch adds a flag in devstack so jobs can
utilize it to set required tb-cache size.
[1] https://review.opendev.org/c/openstack/nova/+/868419
Co-Authored-By: Sean Mooney <work@seanmooney.info>
Related: blueprint libvirt-tb-cache-size
Change-Id: Ifde737eb5d87dfe860445097d1f2b0ce16b0de05
diff --git a/.zuul.yaml b/.zuul.yaml
index 06d76d0..3e6c42e 100644
--- a/.zuul.yaml
+++ b/.zuul.yaml
@@ -544,17 +544,15 @@
# increase in swap performance by reducing the amount of data
# written to disk. the overall speedup is proportional to the
# compression ratio and the speed of the swap device.
+ # NOTE: this option is ignored when not using nova with the libvirt
+ # virt driver.
+ NOVA_LIBVIRT_TB_CACHE_SIZE: 128
ENABLE_ZSWAP: true
devstack_local_conf:
post-config:
$NEUTRON_CONF:
DEFAULT:
global_physnet_mtu: '{{ external_bridge_mtu }}'
- $NOVA_CPU_CONF:
- libvirt:
- # Use lower TB cache than default(1GiB), only applicable with
- # libvirt>=8.0.0
- tb_cache_size: 128
devstack_services:
# Core services enabled for this branch.
# This list replaces the test-matrix.
@@ -659,13 +657,9 @@
# written to disk. the overall speedup is porportional to the
# compression ratio and the speed of the swap device.
ENABLE_ZSWAP: true
- devstack_local_conf:
- post-config:
- $NOVA_CPU_CONF:
- libvirt:
- # Use lower TB cache than default(1GiB), only applicable with
- # libvirt>=8.0.0
- tb_cache_size: 128
+ # NOTE: this option is ignored when not using nova with the libvirt
+ # virt driver.
+ NOVA_LIBVIRT_TB_CACHE_SIZE: 128
- job:
name: devstack-ipv6
diff --git a/lib/nova b/lib/nova
index ee3f29e..7c6ffb2 100644
--- a/lib/nova
+++ b/lib/nova
@@ -173,6 +173,9 @@
# Whether to use Keystone unified limits instead of legacy quota limits.
NOVA_USE_UNIFIED_LIMITS=$(trueorfalse False NOVA_USE_UNIFIED_LIMITS)
+# TB Cache Size in MiB for qemu guests
+NOVA_LIBVIRT_TB_CACHE_SIZE=${NOVA_LIBVIRT_TB_CACHE_SIZE:-0}
+
# Functions
# ---------
@@ -1071,6 +1074,9 @@
fi
if [[ "$VIRT_DRIVER" = 'libvirt' ]]; then
+ if [ ${NOVA_LIBVIRT_TB_CACHE_SIZE} -gt 0 ]; then
+ iniset $NOVA_CPU_CONF libvirt tb_cache_size ${NOVA_LIBVIRT_TB_CACHE_SIZE}
+ fi
# The group **$LIBVIRT_GROUP** is added to the current user in this script.
# ``sg`` is used in run_process to execute nova-compute as a member of the
# **$LIBVIRT_GROUP** group.