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