diff --git a/roles/mellanox_config/tasks/rocev2.yml b/roles/mellanox_config/tasks/rocev2.yml index cf68174cfdfe95dd175ffcab790421a68e45473b..945e8c4f79a506f71cb169cdb2eea51ad5c2e8fd 100644 --- a/roles/mellanox_config/tasks/rocev2.yml +++ b/roles/mellanox_config/tasks/rocev2.yml @@ -9,6 +9,7 @@ shell: /usr/sbin/ibstat | grep mlx5 | awk '{print $2}' | sed -r "s#'##g" register: qibdevicenames check_mode: no + changed_when: false #when: not statrocemode.stat.exists - name: print qibdevicenames @@ -23,6 +24,7 @@ owner: root group: root mode: u+rwx,g-wx,o-rwx + register: pfcecn - name: template roce_mode.service file template: dest=/etc/systemd/system/roce_mode.service src=roce_mode.service.j2 owner=root group=root mode=0644 @@ -38,9 +40,9 @@ register: reload_service - name: enable roce_mode setting - service: name=roce_mode state=started enabled=yes + service: name=roce_mode state=restarted enabled=yes become: true - when: service_file.changed + when: service_file.changed or pfcecn.changed - name: enable roce_mode setting service: name=roce_mode state=started enabled=yes diff --git a/roles/mellanox_config/templates/roce_mode.service.j2 b/roles/mellanox_config/templates/roce_mode.service.j2 index a44d473fba8e6d422d4c4b72244a4899ed4e451a..3c36753a1e865839349fc7f098a3e31c6ce7a136 100644 --- a/roles/mellanox_config/templates/roce_mode.service.j2 +++ b/roles/mellanox_config/templates/roce_mode.service.j2 @@ -18,6 +18,14 @@ ExecStart=/usr/sbin/cma_roce_mode -d {{ device }} -p 1 -m {{ rocemode }} ExecStartPost=/usr/sbin/pfc-ecn.sh {% endif %} +{% if "OpenStack Nova" not in ansible_product_name %} +ExecStartPost=/sbin/ethtool -A p1p1 rx off tx off +ExecStartPost=/sbin/ethtool -A p1p2 rx off tx off +{% else %} +# disable global pause counters. Query via ethtool -a mlx0. Commented because they are always off anyway and turning them of returns code 78 +#ExecStartPost=/sbin/ethtool -A mlx0 rx off tx off +{% endif %} + [Install] WantedBy=multi-user.target