From 932aecf33c617b97f399d4b197beae7d68fa104c Mon Sep 17 00:00:00 2001 From: Rajesh Tailor Date: Tue, 29 Sep 2020 17:13:52 +0530 Subject: [PATCH] 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 --- .../nova/nova-compute-container-puppet.yaml | 18 ++++++++++++++++++ roles/ComputeOvsDpdkRT.yaml | 1 + roles/ComputeOvsDpdkSriovRT.yaml | 1 + roles/ComputeRealTime.yaml | 1 + roles/ComputeSriovRT.yaml | 1 + 5 files changed, 22 insertions(+) diff --git a/deployment/nova/nova-compute-container-puppet.yaml b/deployment/nova/nova-compute-container-puppet.yaml index c32e119618..0e5b913dd8 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 0112e5b0ff..2e23becfbf 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 83daf01392..b2367a2a7d 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 a86fb39f11..39739561f3 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 75bbf64eac..989a285c65 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