From c746dfa0ba88928ea74c97747f8d7cd36d602533 Mon Sep 17 00:00:00 2001 From: yogananth subramanian Date: Sat, 8 May 2021 17:41:30 +0530 Subject: [PATCH] support for OVS DPDK pmd auto balance parameters. This patch adds 3 new role specific THT parameters to configure OVS DPDK pmd auto balance feature, OvsPmdLoadThreshold (PMD load threshold) OvsPmdImprovementThreshold (variance in PMD improvement threshold) OvsPmdRebalInterval (minimum time between 2 consecutive PMD auto load balancing iterations). Depends-On: https://review.opendev.org/c/openstack/tripleo-ansible/+/790251 Signed-off-by: yogananth subramanian Change-Id: Id74ba956cf29241c93849602ab05c21c1ccb2b06 (cherry picked from commit ec444622dc2c002386893885378c3f6d8da0b184) --- .../openvswitch-dpdk-baremetal-ansible.yaml | 46 +++++++++++++++++++ .../ovs-dpdk-pmd-params-55df11e67acb6736.yaml | 7 +++ 2 files changed, 53 insertions(+) create mode 100644 releasenotes/notes/ovs-dpdk-pmd-params-55df11e67acb6736.yaml diff --git a/deployment/openvswitch/openvswitch-dpdk-baremetal-ansible.yaml b/deployment/openvswitch/openvswitch-dpdk-baremetal-ansible.yaml index 77c32db069..3dab8e4260 100644 --- a/deployment/openvswitch/openvswitch-dpdk-baremetal-ansible.yaml +++ b/deployment/openvswitch/openvswitch-dpdk-baremetal-ansible.yaml @@ -97,6 +97,43 @@ parameters: default: "" tags: - role_specific + OvsPmdLoadThreshold: + description: > + Minimum PMD thread load threshold. Its a string with a number + in range 0 to 100, specifies the minimum PMD thread load threshold + (% of used cycles) of any non-isolated PMD threads when a PMD Auto Load + Balance may be triggered. + constraints: + - allowed_pattern: "[0-9]*" + type: string + default: "" + tags: + - role_specific + OvsPmdImprovementThreshold: + description: > + PMD load variance improvement threshold. Its a string with a number + in range 0 to 100, specifies the minimum evaluated % improvement in + load distribution across the non-isolated PMD threads that will allow a + PMD Auto Load Balance to occur. + Note, setting this parameter to 0 will always allow an auto load balance + to occur regardless of estimated improvement or not. + constraints: + - allowed_pattern: "[0-9]*" + type: string + default: "" + tags: + - role_specific + OvsPmdRebalInterval: + description: > + PMD auto load balancing interval, Its a string with a number in range + 0 to 20,000, specifies the minimum time (in minutes) between 2 + consecutive PMD Auto Load Balancing iterations. + constraints: + - allowed_pattern: "[0-9]*" + type: string + default: "" + tags: + - role_specific OvsDisableEMC: default: false description: | @@ -133,6 +170,9 @@ resources: enable_tso: OvsDpdkEnableTSO revalidator: OvsRevalidatorCores handler: OvsHandlerCores + pmd_load_threshold: OvsPmdLoadThreshold + pmd_improvement_threshold: OvsPmdImprovementThreshold + pmd_rebal_interval: OvsPmdRebalInterval - values: {get_param: [RoleParameters]} - values: OvsDpdkCoreList: {get_param: OvsDpdkCoreList} @@ -144,6 +184,9 @@ resources: OvsDpdkEnableTSO: {get_param: OvsDpdkEnableTSO} OvsRevalidatorCores: {get_param: OvsRevalidatorCores} OvsHandlerCores: {get_param: OvsHandlerCores} + OvsPmdLoadThreshold: {get_param: OvsPmdLoadThreshold} + OvsPmdImprovementThreshold: {get_param: OvsPmdImprovementThreshold} + OvsPmdRebalInterval: {get_param: OvsPmdRebalInterval} BootParams: type: ./../kernel/kernel-boot-params-baremetal-ansible.yaml @@ -173,6 +216,9 @@ outputs: tripleo_ovs_dpdk_socket_memory: {get_attr: [RoleParametersDpdk, value, socket_mem]} tripleo_ovs_dpdk_revalidator_cores: {get_attr: [RoleParametersDpdk, value, revalidator]} tripleo_ovs_dpdk_handler_cores: {get_attr: [RoleParametersDpdk, value, handler]} + tripleo_ovs_dpdk_pmd_load_threshold: {get_attr: [RoleParametersDpdk, value, pmd_load_threshold]} + tripleo_ovs_dpdk_pmd_improvement_threshold: {get_attr: [RoleParametersDpdk, value, pmd_improvement_threshold]} + tripleo_ovs_dpdk_pmd_rebal_interval: {get_attr: [RoleParametersDpdk, value, pmd_rebal_interval]} tripleo_ovs_dpdk_emc_insertion_probablity: if: - emc_disable diff --git a/releasenotes/notes/ovs-dpdk-pmd-params-55df11e67acb6736.yaml b/releasenotes/notes/ovs-dpdk-pmd-params-55df11e67acb6736.yaml new file mode 100644 index 0000000000..3443a6c1b9 --- /dev/null +++ b/releasenotes/notes/ovs-dpdk-pmd-params-55df11e67acb6736.yaml @@ -0,0 +1,7 @@ +--- +features: +- Add support for OVS DPDK pmd auto balance parameters. + This feature adds 3 new role specific THT parameters to set + pmd-auto-lb-load-threshold, pmd-auto-lb-improvement-threshold, + and pmd-auto-lb-rebal-interval in OVS through OvsPmdLoadThreshold, + OvsPmdImprovementThreshold and OvsPmdRebalInterval respectively.