commit 932aecf33c617b97f399d4b197beae7d68fa104c Author: Rajesh Tailor Date: Tue Sep 29 17:13:52 2020 +0530 Add ability to manage irqbalance on compute per role Adds functionality whether to enable/disable irqbalance on compute nodes. Based on tuning recommendation for compute realtime nodes irqbalance should be stopped and disabled. And tuned will be responsible for managing IRQ balancing instead of irqbalance. Change-Id: Ibefb8e472c68901a74d76769b5314bef81fd5b15 diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index c32e119..0e5b913 100644 --- a/deployment/nova/nova-compute-container-puppet.yaml +++ b/deployment/nova/nova-compute-container-puppet.yaml @@ -443,6 +443,13 @@ parameters: default: {} tags: - role_specific + NovaComputeDisableIrqBalance: + default: false + description: Whether to disable irqbalance on compute nodes or not. Especially + in Realtime Compute role one wants to keep it disabled. + type: boolean + tags: + - role_specific # DEPRECATED: the following options are deprecated and are currently maintained # for backwards compatibility. They will be removed in future release. @@ -544,6 +551,7 @@ resources: nova_pmem_namespaces: NovaPMEMNamespaces nova::compute::libvirt::remove_unused_original_minimum_age_seconds: NovaImageCacheTTL nova::compute::vgpu::vgpu_types_device_addresses_mapping: NovaVGPUTypesDeviceAddressesMapping + compute_disable_irqbalance: NovaComputeDisableIrqBalance - values: {get_param: [RoleParameters]} - values: NovaVcpuPinSet: {get_param: NovaVcpuPinSet} @@ -620,6 +628,7 @@ resources: NovaPMEMNamespaces: {get_param: NovaPMEMNamespaces} NovaImageCacheTTL: {get_param: NovaImageCacheTTL} NovaVGPUTypesDeviceAddressesMapping: {get_param: NovaVGPUTypesDeviceAddressesMapping} + NovaComputeDisableIrqBalance: {get_param: NovaComputeDisableIrqBalance} conditions: @@ -1106,6 +1115,15 @@ outputs: with_items: - ksm.service - ksmtuned.service + - name: Is irqbalance enabled + set_fact: + compute_irqbalance_disabled: {get_attr: [RoleParametersValue, value, compute_disable_irqbalance]} + - name: disable irqbalance service on compute + when: compute_irqbalance_disabled|bool + service: + name: irqbalance.service + state: stopped + enabled: no deploy_steps_tasks: - name: validate nova-compute container state podman_container_info: diff --git a/roles/ComputeOvsDpdkRT.yaml b/roles/ComputeOvsDpdkRT.yaml index 0112e5b..2e23bec 100644 --- a/roles/ComputeOvsDpdkRT.yaml +++ b/roles/ComputeOvsDpdkRT.yaml @@ -19,6 +19,7 @@ NovaLibvirtRxQueueSize: 1024 NovaLibvirtTxQueueSize: 1024 NovaLibvirtMemStatsPeriodSeconds: 0 + NovaComputeDisableIrqBalance: True update_serial: 25 ServicesDefault: - OS::TripleO::Services::Aide diff --git a/roles/ComputeOvsDpdkSriovRT.yaml b/roles/ComputeOvsDpdkSriovRT.yaml index 83daf01..b2367a2 100644 --- a/roles/ComputeOvsDpdkSriovRT.yaml +++ b/roles/ComputeOvsDpdkSriovRT.yaml @@ -16,6 +16,7 @@ NovaLibvirtRxQueueSize: 1024 NovaLibvirtTxQueueSize: 1024 NovaLibvirtMemStatsPeriodSeconds: 0 + NovaComputeDisableIrqBalance: True update_serial: 25 ServicesDefault: - OS::TripleO::Services::Aide diff --git a/roles/ComputeRealTime.yaml b/roles/ComputeRealTime.yaml index a86fb39..3973956 100644 --- a/roles/ComputeRealTime.yaml +++ b/roles/ComputeRealTime.yaml @@ -25,6 +25,7 @@ NovaComputeCpuDedicatedSet: "" # real-time nodes NovaComputeCpuSharedSet: "" # NovaLibvirtMemStatsPeriodSeconds: 0 + NovaComputeDisableIrqBalance: True update_serial: 25 ServicesDefault: - OS::TripleO::Services::Aide diff --git a/roles/ComputeSriovRT.yaml b/roles/ComputeSriovRT.yaml index 75bbf64..989a285 100644 --- a/roles/ComputeSriovRT.yaml +++ b/roles/ComputeSriovRT.yaml @@ -16,6 +16,7 @@ RoleParametersDefault: TunedProfileName: "realtime-virtual-host" NovaLibvirtMemStatsPeriodSeconds: 0 + NovaComputeDisableIrqBalance: True update_serial: 25 ServicesDefault: - OS::TripleO::Services::Aide