From 71eb4ba2fa730166391c76321ee2b1aa8e73fa21 Mon Sep 17 00:00:00 2001 From: Christophe Fontaine Date: Thu, 5 Mar 2020 00:15:05 +0100 Subject: [PATCH] 'tripleo_ovs_dpdk_lcore_list' should be optional This parameter should be optional as only the first core in the mask will be used to repin all ovs-vswitchd threads. Leaving this parameter blank (and as a consequence, not setting 'dpdk-lcore-mask') allows all non-dpdk threads to float on the original cpu set. Change-Id: Ia9e001e2b1987f00a960cdf106eaa8e84dc4d71a Signed-off-by: Christophe Fontaine --- doc/source/roles/role-tripleo-ovs-dpdk.rst | 8 ++++++-- .../molecule/default/converge.yml | 6 +++--- .../molecule/default/tests/test_default.py | 11 +++++------ .../roles/tripleo_ovs_dpdk/tasks/config.yml | 16 ++++++++++------ 4 files changed, 24 insertions(+), 17 deletions(-) diff --git a/doc/source/roles/role-tripleo-ovs-dpdk.rst b/doc/source/roles/role-tripleo-ovs-dpdk.rst index 97ce3a05a..ff77a8ded 100644 --- a/doc/source/roles/role-tripleo-ovs-dpdk.rst +++ b/doc/source/roles/role-tripleo-ovs-dpdk.rst @@ -22,14 +22,18 @@ Role Defaults - ``tripleo_ovs_dpdk_pmd_core_list`` - **Description**: (*Mandatory*) List of PMD Cores for DPDK. Its a - comma-separated string of logical cores. + comma-separated string of logical cores. These core should be part + of ``isolcpus`` kernel parameter and be excluded from ``NovaComputeCpuDedicatedSet`` + and from ``NovaComputeCpuSharedSet`` - **Default**: ``''`` - **Examples**: ``'1,13'`` - ``tripleo_ovs_dpdk_lcore_list`` - - **Description**: (*Mandatory*) List of lcores for DPDK. Its a + - **Description**: (*Optional*) List of lcores for DPDK. Its a comma-separated string of logical cores. + All ovs-vswitchd threads will be pinned to the first core declared + in the mask. - **Default**: ``''`` - **Examples**: ``'0,12'`` diff --git a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/converge.yml b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/converge.yml index 17032c0be..902be0793 100644 --- a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/converge.yml +++ b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/converge.yml @@ -27,8 +27,9 @@ tripleo_ovs_dpdk_socket_memory: "1024,1024" tripleo_ovs_dpdk_emc_insertion_probablity: 10 -# By removing tripleo_ovs_dpdk_emc_insertion_probablity from the vars, -# which was set by earlier play, should remove this key from the ovs db. +# By removing tripleo_ovs_dpdk_emc_insertion_probablity and +# tripleo_ovs_dpdk_lcore_list from the vars, which were set by earlier play, +# should remove these keys from the ovs db. - name: Converge hosts: all tasks: @@ -37,5 +38,4 @@ tasks_from: "config.yml" vars: tripleo_ovs_dpdk_pmd_core_list: "1,13-15" - tripleo_ovs_dpdk_lcore_list: "0,12" tripleo_ovs_dpdk_socket_memory: "1024,1024" diff --git a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/tests/test_default.py b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/tests/test_default.py index 17dfde92f..ff14cdf95 100644 --- a/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/tests/test_default.py +++ b/tripleo_ansible/roles/tripleo_ovs_dpdk/molecule/default/tests/test_default.py @@ -46,18 +46,17 @@ def test_positive_pmd(host): assert val == "e002" -def test_positive_lcore(host): - other_config = get_config(host) - val = other_config['dpdk-lcore-mask'].replace('"', '') - assert val == "1001" - - def test_positive_socket_mem(host): other_config = get_config(host) val = other_config['dpdk-socket-mem'].replace('"', '') assert val == "1024,1024" +def test_positive_lcore(host): + other_config = get_config(host) + assert 'dpdk-lcore-mask' not in other_config + + def test_positive_validator_threads(host): other_config = get_config(host) assert 'n-revalidator-threads' not in other_config diff --git a/tripleo_ansible/roles/tripleo_ovs_dpdk/tasks/config.yml b/tripleo_ansible/roles/tripleo_ovs_dpdk/tasks/config.yml index 9066b678b..bc4948468 100644 --- a/tripleo_ansible/roles/tripleo_ovs_dpdk/tasks/config.yml +++ b/tripleo_ansible/roles/tripleo_ovs_dpdk/tasks/config.yml @@ -19,11 +19,6 @@ msg: "List of PMD cores cannot be empty - tripleo_ovs_dpdk_pmd_core_list" when: not tripleo_ovs_dpdk_pmd_core_list|string or tripleo_ovs_dpdk_pmd_core_list == 'null' -- name: Check valid input for tripleo_ovs_dpdk_lcore_list - fail: - msg: "List of DPDK lcores cannot be empty - tripleo_ovs_dpdk_lcore_list" - when: not tripleo_ovs_dpdk_lcore_list|string or tripleo_ovs_dpdk_lcore_list == 'null' - - name: Check valid input for tripleo_ovs_dpdk_socket_memory fail: msg: "Socket Memory cannot be empty - tripleo_ovs_dpdk_socket_memory" @@ -38,7 +33,7 @@ value: "{{ tripleo_ovs_dpdk_pmd_core_list | cpu_mask }}" when: tripleo_ovs_dpdk_pmd_core_list|string -- name: Apply DPDK lcores config +- name: Set DPDK lcores config openvswitch_db: table: open_vswitch record: . @@ -47,6 +42,15 @@ value: "{{ tripleo_ovs_dpdk_lcore_list | cpu_mask }}" when: tripleo_ovs_dpdk_lcore_list|string +- name: Remove DPDK lcores config + openvswitch_db: + state: absent + table: open_vswitch + record: . + col: other_config + key: dpdk-lcore-mask + when: not tripleo_ovs_dpdk_lcore_list|string or tripleo_ovs_dpdk_lcore_list == 'null' + - name: Add memory channels to dpdk extra set_fact: tripleo_ovs_dpdk_extra_internal: "{{ tripleo_ovs_dpdk_extra }} -n {{ tripleo_ovs_dpdk_memory_channels }}"