.. | .. |
---|
47 | 47 | "rp_byte_reset", |
---|
48 | 48 | "rp_threshold", |
---|
49 | 49 | "rp_ai_rate", |
---|
| 50 | + "rp_max_rate", |
---|
50 | 51 | "rp_hai_rate", |
---|
51 | 52 | "rp_min_dec_fac", |
---|
52 | 53 | "rp_min_rate", |
---|
.. | .. |
---|
56 | 57 | "rp_rate_reduce_monitor_period", |
---|
57 | 58 | "rp_initial_alpha_value", |
---|
58 | 59 | "rp_gd", |
---|
| 60 | + "np_min_time_between_cnps", |
---|
59 | 61 | "np_cnp_dscp", |
---|
60 | 62 | "np_cnp_prio_mode", |
---|
61 | 63 | "np_cnp_prio", |
---|
.. | .. |
---|
66 | 68 | #define MLX5_IB_RP_TIME_RESET_ATTR BIT(3) |
---|
67 | 69 | #define MLX5_IB_RP_BYTE_RESET_ATTR BIT(4) |
---|
68 | 70 | #define MLX5_IB_RP_THRESHOLD_ATTR BIT(5) |
---|
| 71 | +#define MLX5_IB_RP_MAX_RATE_ATTR BIT(6) |
---|
69 | 72 | #define MLX5_IB_RP_AI_RATE_ATTR BIT(7) |
---|
70 | 73 | #define MLX5_IB_RP_HAI_RATE_ATTR BIT(8) |
---|
71 | 74 | #define MLX5_IB_RP_MIN_DEC_FAC_ATTR BIT(9) |
---|
.. | .. |
---|
77 | 80 | #define MLX5_IB_RP_INITIAL_ALPHA_VALUE_ATTR BIT(15) |
---|
78 | 81 | #define MLX5_IB_RP_GD_ATTR BIT(16) |
---|
79 | 82 | |
---|
| 83 | +#define MLX5_IB_NP_MIN_TIME_BETWEEN_CNPS_ATTR BIT(2) |
---|
80 | 84 | #define MLX5_IB_NP_CNP_DSCP_ATTR BIT(3) |
---|
81 | 85 | #define MLX5_IB_NP_CNP_PRIO_MODE_ATTR BIT(4) |
---|
82 | 86 | |
---|
.. | .. |
---|
111 | 115 | case MLX5_IB_DBG_CC_RP_AI_RATE: |
---|
112 | 116 | return MLX5_GET(cong_control_r_roce_ecn_rp, field, |
---|
113 | 117 | rpg_ai_rate); |
---|
| 118 | + case MLX5_IB_DBG_CC_RP_MAX_RATE: |
---|
| 119 | + return MLX5_GET(cong_control_r_roce_ecn_rp, field, |
---|
| 120 | + rpg_max_rate); |
---|
114 | 121 | case MLX5_IB_DBG_CC_RP_HAI_RATE: |
---|
115 | 122 | return MLX5_GET(cong_control_r_roce_ecn_rp, field, |
---|
116 | 123 | rpg_hai_rate); |
---|
.. | .. |
---|
138 | 145 | case MLX5_IB_DBG_CC_RP_GD: |
---|
139 | 146 | return MLX5_GET(cong_control_r_roce_ecn_rp, field, |
---|
140 | 147 | rpg_gd); |
---|
| 148 | + case MLX5_IB_DBG_CC_NP_MIN_TIME_BETWEEN_CNPS: |
---|
| 149 | + return MLX5_GET(cong_control_r_roce_ecn_np, field, |
---|
| 150 | + min_time_between_cnps); |
---|
141 | 151 | case MLX5_IB_DBG_CC_NP_CNP_DSCP: |
---|
142 | 152 | return MLX5_GET(cong_control_r_roce_ecn_np, field, |
---|
143 | 153 | cnp_dscp); |
---|
.. | .. |
---|
186 | 196 | MLX5_SET(cong_control_r_roce_ecn_rp, field, |
---|
187 | 197 | rpg_ai_rate, var); |
---|
188 | 198 | break; |
---|
| 199 | + case MLX5_IB_DBG_CC_RP_MAX_RATE: |
---|
| 200 | + *attr_mask |= MLX5_IB_RP_MAX_RATE_ATTR; |
---|
| 201 | + MLX5_SET(cong_control_r_roce_ecn_rp, field, |
---|
| 202 | + rpg_max_rate, var); |
---|
| 203 | + break; |
---|
189 | 204 | case MLX5_IB_DBG_CC_RP_HAI_RATE: |
---|
190 | 205 | *attr_mask |= MLX5_IB_RP_HAI_RATE_ATTR; |
---|
191 | 206 | MLX5_SET(cong_control_r_roce_ecn_rp, field, |
---|
.. | .. |
---|
231 | 246 | MLX5_SET(cong_control_r_roce_ecn_rp, field, |
---|
232 | 247 | rpg_gd, var); |
---|
233 | 248 | break; |
---|
| 249 | + case MLX5_IB_DBG_CC_NP_MIN_TIME_BETWEEN_CNPS: |
---|
| 250 | + *attr_mask |= MLX5_IB_NP_MIN_TIME_BETWEEN_CNPS_ATTR; |
---|
| 251 | + MLX5_SET(cong_control_r_roce_ecn_np, field, |
---|
| 252 | + min_time_between_cnps, var); |
---|
| 253 | + break; |
---|
234 | 254 | case MLX5_IB_DBG_CC_NP_CNP_DSCP: |
---|
235 | 255 | *attr_mask |= MLX5_IB_NP_CNP_DSCP_ATTR; |
---|
236 | 256 | MLX5_SET(cong_control_r_roce_ecn_np, field, cnp_dscp, var); |
---|
.. | .. |
---|
270 | 290 | |
---|
271 | 291 | node = mlx5_ib_param_to_node(offset); |
---|
272 | 292 | |
---|
273 | | - err = mlx5_cmd_query_cong_params(mdev, node, out, outlen); |
---|
| 293 | + err = mlx5_cmd_query_cong_params(mdev, node, out); |
---|
274 | 294 | if (err) |
---|
275 | 295 | goto free; |
---|
276 | 296 | |
---|
.. | .. |
---|
319 | 339 | MLX5_SET(field_select_r_roce_rp, field, field_select_r_roce_rp, |
---|
320 | 340 | attr_mask); |
---|
321 | 341 | |
---|
322 | | - err = mlx5_cmd_modify_cong_params(mdev, in, inlen); |
---|
| 342 | + err = mlx5_cmd_exec_in(dev->mdev, modify_cong_params, in); |
---|
323 | 343 | kvfree(in); |
---|
324 | 344 | alloc_err: |
---|
325 | 345 | mlx5_ib_put_native_port_mdev(dev, port_num + 1); |
---|
.. | .. |
---|
389 | 409 | dev->port[port_num].dbg_cc_params = NULL; |
---|
390 | 410 | } |
---|
391 | 411 | |
---|
392 | | -int mlx5_ib_init_cong_debugfs(struct mlx5_ib_dev *dev, u8 port_num) |
---|
| 412 | +void mlx5_ib_init_cong_debugfs(struct mlx5_ib_dev *dev, u8 port_num) |
---|
393 | 413 | { |
---|
394 | 414 | struct mlx5_ib_dbg_cc_params *dbg_cc_params; |
---|
395 | 415 | struct mlx5_core_dev *mdev; |
---|
396 | 416 | int i; |
---|
397 | 417 | |
---|
398 | 418 | if (!mlx5_debugfs_root) |
---|
399 | | - goto out; |
---|
| 419 | + return; |
---|
400 | 420 | |
---|
401 | 421 | /* Takes a 1-based port number */ |
---|
402 | 422 | mdev = mlx5_ib_get_native_port_mdev(dev, port_num + 1, NULL); |
---|
403 | 423 | if (!mdev) |
---|
404 | | - goto out; |
---|
| 424 | + return; |
---|
405 | 425 | |
---|
406 | 426 | if (!MLX5_CAP_GEN(mdev, cc_query_allowed) || |
---|
407 | 427 | !MLX5_CAP_GEN(mdev, cc_modify_allowed)) |
---|
.. | .. |
---|
415 | 435 | |
---|
416 | 436 | dbg_cc_params->root = debugfs_create_dir("cc_params", |
---|
417 | 437 | mdev->priv.dbg_root); |
---|
418 | | - if (!dbg_cc_params->root) |
---|
419 | | - goto err; |
---|
420 | 438 | |
---|
421 | 439 | for (i = 0; i < MLX5_IB_DBG_CC_MAX; i++) { |
---|
422 | 440 | dbg_cc_params->params[i].offset = i; |
---|
.. | .. |
---|
427 | 445 | 0600, dbg_cc_params->root, |
---|
428 | 446 | &dbg_cc_params->params[i], |
---|
429 | 447 | &dbg_cc_fops); |
---|
430 | | - if (!dbg_cc_params->params[i].dentry) |
---|
431 | | - goto err; |
---|
432 | 448 | } |
---|
433 | 449 | |
---|
434 | 450 | put_mdev: |
---|
435 | 451 | mlx5_ib_put_native_port_mdev(dev, port_num + 1); |
---|
436 | | -out: |
---|
437 | | - return 0; |
---|
| 452 | + return; |
---|
438 | 453 | |
---|
439 | 454 | err: |
---|
440 | 455 | mlx5_ib_warn(dev, "cong debugfs failure\n"); |
---|
.. | .. |
---|
445 | 460 | * We don't want to fail driver if debugfs failed to initialize, |
---|
446 | 461 | * so we are not forwarding error to the user. |
---|
447 | 462 | */ |
---|
448 | | - return 0; |
---|
| 463 | + return; |
---|
449 | 464 | } |
---|