IB/mlx5: Expose extended error counters
Subsystems (3)
PATCH 1/1 IB/mlx5: Expose extended error counters
From: Parav Pandit <parav-VPRAkNaXOzVWk0Htik3J/[email protected]>
This patch adds below requester and responder side error counters, which will be exposed by hardware counters interface and are supported as part of query Q counters command extension.
+---------------------------+-------------------------------------+ | Name | Description | |---------------------------+-------------------------------------| |resp_local_length_error | Number of times responder detected | | | local length errors | |---------------------------+-------------------------------------| |resp_cqe_error | Number of CQEs completed with error | | | at responder | |---------------------------+-------------------------------------| |req_cqe_error | Number of CQEs completed with error | | | at requester | |---------------------------+-------------------------------------| |req_remote_invalid_request | Number of times requester detected | | | remote invalid request error | |---------------------------+-------------------------------------| |req_remote_access_error | Number of times requester detected | | | remote access error | |---------------------------+-------------------------------------| |resp_remote_access_error | Number of times responder detected | | | remote access error | |---------------------------+-------------------------------------| |resp_cqe_flush_error | Number of CQEs completed with | | | flushed with error at responder | |---------------------------+-------------------------------------| |req_cqe_flush_error | Number of CQEs completed with | | | flushed with error at requester | +---------------------------+-------------------------------------+
--- drivers/infiniband/hw/mlx5/main.c | 22 ++++++++++++++++++++ include/linux/mlx5/mlx5_ifc.h | 44 +++++++++++++++++++++++++++++++++++++-- 2 files changed, 64 insertions(+), 2 deletions(-)
drivers/infiniband/hw/mlx5/main.c +22 -0
@@ -3315,6 +3315,17 @@ static const struct mlx5_ib_counter cong_cnts[] = { INIT_CONG_COUNTER(np_cnp_sent), }; +static const struct mlx5_ib_counter extended_err_cnts[] = { +INIT_Q_COUNTER (resp_local_length_error), +INIT_Q_COUNTER (resp_cqe_error), +INIT_Q_COUNTER (req_cqe_error), +INIT_Q_COUNTER (req_remote_invalid_request), +INIT_Q_COUNTER (req_remote_access_errors), +INIT_Q_COUNTER (resp_remote_access_errors), +INIT_Q_COUNTER (resp_cqe_flush_error), +INIT_Q_COUNTER (req_cqe_flush_error), +}; +static void mlx5_ib_dealloc_counters (struct mlx5_ib_dev *dev) {unsigned int i;
@@ -3339,6 +3350,10 @@ static int __mlx5_ib_alloc_counters(struct mlx5_ib_dev *dev,if (MLX5_CAP_GEN (dev->mdev, retransmission_q_counters)) num_counters +=ARRAY_SIZE (retrans_q_cnts); + +if (MLX5_CAP_GEN (dev->mdev, enhanced_error_q_counters)) + num_counters +=ARRAY_SIZE (extended_err_cnts); + cnts->num_q_counters = num_counters;if (MLX5_CAP_GEN (dev->mdev, cc_query_allowed)) {
@@ -3388,6 +3403,13 @@ static void mlx5_ib_fill_counters(struct mlx5_ib_dev *dev, } } +if (MLX5_CAP_GEN (dev->mdev, enhanced_error_q_counters)) { +for (i =0 ; i <ARRAY_SIZE (extended_err_cnts); i++, j++) { + names[j] = extended_err_cnts[i].name; + offsets[j] = extended_err_cnts[i].offset; + } + } +if (MLX5_CAP_GEN (dev->mdev, cc_query_allowed)) {for (i =0 ; i <ARRAY_SIZE (cong_cnts); i++, j++) { names[j] = cong_cnts[i].name;
include/linux/mlx5/mlx5_ifc.h +42 -2
56 lines not on this page · raw message
--
2.12.2
--
To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
A message that is not in the archive (sent off-list or not yet received): 20170619041937.10120-1-leon-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org
Doug Ledford
AppliedQuoted 35 lines · Leon Romanovsky
From: Parav Pandit <parav-VPRAkNaXOzVWk0Htik3J/[email protected]>
This patch adds below requester and responder side error counters, which will be exposed by hardware counters interface and are supported
as part of query Q counters command extension.+---------------------------+-------------------------------------+ | Name | Description | |---------------------------+-------------------------------------| |resp_local_length_error | Number of times responder detected | | | local length errors | |---------------------------+-------------------------------------| |resp_cqe_error | Number of CQEs completed with error | | | at responder | |---------------------------+-------------------------------------| |req_cqe_error | Number of CQEs completed with error | | | at requester | |---------------------------+-------------------------------------| |req_remote_invalid_request | Number of times requester detected | | | remote invalid request error | |---------------------------+-------------------------------------| |req_remote_access_error | Number of times requester detected | | | remote access error | |---------------------------+-------------------------------------| |resp_remote_access_error | Number of times responder detected | | | remote access error | |---------------------------+-------------------------------------| |resp_cqe_flush_error | Number of CQEs completed with | | | flushed with error at responder | |---------------------------+-------------------------------------| |req_cqe_flush_error | Number of CQEs completed with | | | flushed with error at requester | +---------------------------+-------------------------------------+
Quoted 4 lines
Thanks, applied.
Signature · 8 lines
Doug Ledford <[email protected]> GPG KeyID: B826A3330E572FDD Key fingerprint = AE6B 1BDA 122B 23B4 265B 1274 B826 A333 0E57 2FDD -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html