[Bionic] mlx4 ETH - mlnx_qos failed when set some TC to vendor
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
linux (Ubuntu) |
Fix Released
|
Medium
|
Joseph Salisbury | ||
Bionic |
Fix Released
|
Medium
|
Joseph Salisbury |
Bug Description
reproduce:
[root@reg-
Netlink error: Bad value. see dmesg.
[root@reg-
[69718.992299] mlx4_en: ens8: TC[0]: Not supported TSA: 255
There is a upstream commit that fix the issue, please add it to bionic
commit a42b63c1ac1986f
Author: Moni Shoua <email address hidden>
Date: Thu Dec 28 16:26:11 2017 +0200
net/mlx4_en: Change default QoS settings
Change the default mapping between TC and TCG as follows:
Prio | TC/TCG
| from to
| (set by FW) (set by SW)
---
0 | 0/0 0/7
1 | 1/0 0/6
2 | 2/0 0/5
3 | 3/0 0/4
4 | 4/0 0/3
5 | 5/0 0/2
6 | 6/0 0/1
7 | 7/0 0/0
These new settings cause that a pause frame for any prio stops
traffic for all prios.
Fixes: 564c274c3df0 ("net/mlx4_en: DCB QoS support")
Signed-off-by: Moni Shoua <email address hidden>
Signed-off-by: Maor Gottlieb <email address hidden>
Signed-off-by: Tariq Toukan <email address hidden>
Signed-off-by: David S. Miller <email address hidden>
diff --git a/drivers/
index 5f41dc9..1a0c3bf8 100644
--- a/drivers/
+++ b/drivers/
@@ -310,6 +310,7 @@ static int mlx4_en_
}
+ case IEEE_8021QAZ_
@@ -347,6 +348,10 @@ static int mlx4_en_
/* higher TC means higher priority => lower pg */
for (i = IEEE_8021QAZ_
+ case IEEE_8021QAZ_
+ pg[i] = MLX4_EN_TC_VENDOR;
+ tc_tx_bw[i] = MLX4_EN_BW_MAX;
+ break;
diff --git a/drivers/
index 99051a2..21bc17f 100644
--- a/drivers/
+++ b/drivers/
@@ -3336,6 +3336,13 @@ int mlx4_en_
#ifdef CONFIG_MLX4_EN_DCB
if (!mlx4_
+ u8 prio;
+
+ for (prio = 0; prio < IEEE_8021QAZ_
+ priv->ets.
+ priv->ets.
+ }
+
diff --git a/drivers/
index 2b72677..7db3d0d 100644
--- a/drivers/
+++ b/drivers/
@@ -479,6 +479,7 @@ struct mlx4_en_frag_info {
#define MLX4_EN_BW_MIN 1
#define MLX4_EN_BW_MAX 100 /* Utilize 100% of the line */
+#define MLX4_EN_TC_VENDOR 0
#define MLX4_EN_TC_ETS 7
enum dcb_pfc_type {
Changed in linux (Ubuntu): | |
importance: | Undecided → Medium |
Changed in linux (Ubuntu Bionic): | |
assignee: | nobody → Joseph Salisbury (jsalisbury) |
status: | Incomplete → In Progress |
Changed in linux (Ubuntu Bionic): | |
status: | In Progress → Fix Committed |
This bug is missing log files that will aid in diagnosing the problem. While running an Ubuntu kernel (not a mainline or third-party kernel) please enter the following command in a terminal window:
apport-collect 1758662
and then change the status of the bug to 'Confirmed'.
If, due to the nature of the issue you have encountered, you are unable to run this command, please add a comment stating that fact and change the bug status to 'Confirmed'.
This change has been made by an automated script, maintained by the Ubuntu Kernel Team.