net/mlx5: Rate limit errors in command interface
Any error status returned by FW will trigger a print similar to the following error message in the dmesg. [ 55.884355] mlx5_core 0000:00:04.0: mlx5_cmd_check:712:(pid 555): ALLOC_UAR(0x802) op_mod(0x0) failed, status limits exceeded(0x8), syndrome (0x0) Those prints are extremely valuable to diagnose issues with running system and it is important to keep them. However, not-so-careful user can trigger endless number of such prints by depleting HW resources and will spam dmesg. Rate limiting of such messages solves this issue. Signed-off-by: Leon Romanovsky <leonro@mellanox.com> Signed-off-by: Jason Gunthorpe <jgg@mellanox.com>
This commit is contained in:
parent
0af5107cd0
commit
b30408d7a3
@ -712,13 +712,10 @@ static int mlx5_cmd_check(struct mlx5_core_dev *dev, void *in, void *out)
|
||||
uid = MLX5_GET(mbox_in, in, uid);
|
||||
|
||||
if (!uid && opcode != MLX5_CMD_OP_DESTROY_MKEY)
|
||||
mlx5_core_err(dev,
|
||||
"%s(0x%x) op_mod(0x%x) failed, status %s(0x%x), syndrome (0x%x)\n",
|
||||
mlx5_command_str(opcode),
|
||||
opcode, op_mod,
|
||||
cmd_status_str(status),
|
||||
status,
|
||||
syndrome);
|
||||
mlx5_core_err_rl(dev,
|
||||
"%s(0x%x) op_mod(0x%x) failed, status %s(0x%x), syndrome (0x%x)\n",
|
||||
mlx5_command_str(opcode), opcode, op_mod,
|
||||
cmd_status_str(status), status, syndrome);
|
||||
else
|
||||
mlx5_core_dbg(dev,
|
||||
"%s(0x%x) op_mod(0x%x) failed, status %s(0x%x), syndrome (0x%x)\n",
|
||||
|
@ -66,6 +66,12 @@ do { \
|
||||
__func__, __LINE__, current->pid, \
|
||||
##__VA_ARGS__)
|
||||
|
||||
#define mlx5_core_err_rl(__dev, format, ...) \
|
||||
dev_err_ratelimited(&(__dev)->pdev->dev, \
|
||||
"%s:%d:(pid %d): " format, \
|
||||
__func__, __LINE__, current->pid, \
|
||||
##__VA_ARGS__)
|
||||
|
||||
#define mlx5_core_warn(__dev, format, ...) \
|
||||
dev_warn(&(__dev)->pdev->dev, "%s:%d:(pid %d): " format, \
|
||||
__func__, __LINE__, current->pid, \
|
||||
|
Loading…
Reference in New Issue
Block a user