From: Leon Romanovsky <leonro@xxxxxxxxxxxx> Hi Doug, Jason and Saed, This series starts from net/mlx5_core patch and the reason to it that Saeed started to mange specific mlx5_core branch without netdev features. Such separation allows us to avoid delays in creation of shared pull-requests by simply allowing to Saeed to collect mlx5_core patches in advance and send them as a PR to the subsystem which will need latest mlx5_core. Thanks ---------------------------------------------------------------------- >From Raed: This series comes to allow user space applications to monitor real time traffic activity and events of the verbs objects it manages, e.g.: ibv_qp, ibv_wq, ibv_flow. This API enables generic counters creation and define mapping to association with a verbs object, current mlx5 driver using this API for flow counters. With this API, an application can monitor the entire life cycle of object activity, defined here as a static counters attachment. This API also allows dynamic counters monitoring of measurement points for a partial period in the verbs object life cycle. In addition it presents the implementation of the generic counters interface. This will be achieved by extending flow creation by adding a new flow count specification type which allows the user to associate a previously created flow counters using the generic verbs counters interface to the created flow, once associated the user could read statistics by using the read function of the generic counters interface. The API includes: 1. create and destroyed API of a new counters objects 2. read the counters values from HW Note: Attaching API to allow application to define the measurement points per objects is a user space only API and this data is passed to kernel when the counted object (e.g. flow) is created with the counters object. Thanks Matan Barak (1): IB/core: Support passing uhw for create_flow Raed Salem (11): net/mlx5: Export flow counter related API IB/core: Introduce counters object and its create/destroy IB/uverbs: Add create/destroy counters support IB/core: Introduce counters read verb IB/uverbs: Add read counters support IB/core: Add support for flow counters IB/uverbs: Add support for flow counters IB/mlx5: Add counters create and destroy support IB/mlx5: Add flow counters binding support IB/mlx5: Add flow counters read support IB/mlx5: Add counters read support drivers/infiniband/core/Makefile | 2 +- drivers/infiniband/core/uverbs.h | 2 + drivers/infiniband/core/uverbs_cmd.c | 83 +++++- drivers/infiniband/core/uverbs_std_types.c | 3 +- .../infiniband/core/uverbs_std_types_counters.c | 155 +++++++++++ drivers/infiniband/core/verbs.c | 2 +- drivers/infiniband/hw/mlx4/main.c | 6 +- drivers/infiniband/hw/mlx5/main.c | 296 ++++++++++++++++++++- drivers/infiniband/hw/mlx5/mlx5_ib.h | 36 +++ drivers/net/ethernet/mellanox/mlx5/core/fs_core.h | 23 -- .../net/ethernet/mellanox/mlx5/core/fs_counters.c | 3 + include/linux/mlx5/fs.h | 23 ++ include/rdma/ib_verbs.h | 43 ++- include/uapi/rdma/ib_user_ioctl_cmds.h | 21 ++ include/uapi/rdma/ib_user_verbs.h | 13 + include/uapi/rdma/mlx5-abi.h | 14 + 16 files changed, 676 insertions(+), 49 deletions(-) create mode 100644 drivers/infiniband/core/uverbs_std_types_counters.c -- 2.14.3 -- To unsubscribe from this list: send the line "unsubscribe linux-rdma" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html