Re: [PATCH rdma-next 00/16] Statistics counter support

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On 01-Apr-19 11:47, Leon Romanovsky wrote:
> From: Leon Romanovsky <leonro@xxxxxxxxxxxx>
> 
> Hi,
> 
> This series from Mark provides dynamic statistics infrastructure.
> He uses netlink interface to configure and retrieve those counters.
> 
> This infrastructure allows to users monitor various objects by binding
> to them counters. As the beginning, we used QP object as target for
> those counters, but future patches will include ODP MR information too.

Hi Leon and Mark,
Thanks for doing this!

> 
> Two binding modes are supported:
>  - Auto: This allows a user to build automatic set of objects to a counter

build = bind?

>    according to common criteria. For example in a per-type scheme, where in
>    one process all QPs with same QP type are bound automatically to a single
>    counter.

How do we decide which criteria is suitable for auto mode and why is it better
than letting the userspace handle it by itself (query all QPs and bind certain
types to "manual" counters).
Seems like doing it in userspace provides more flexibility than a fixed set of
kernel auto types.

Is there a reason to have one auto counter per port?
Theoretically I can allocate two auto counters and assign a different auto mask
to each one.

>  - Manual: This allows a user to manually bind objects on a counter.
> 
> Those two modes are mutual-exclusive with separation between processes,
> objects created by different processes cannot be bound to a same counter.
> 
> For objects which don't support counter binding, we will return
> pre-allocated counters.

Can you explain? What are those objects and what are pre allocated counters?

> 
> $ rdma statistic qp set link mlx5_2/1 auto type on
> $ rdma statistic qp set link mlx5_2/1 auto off
> $ rdma statistic qp bind link mlx5_2/1 lqpn 178
> $ rdma statistic qp unbind link mlx5_2/1 cntn 4 lqpn 178
> $ rdma statistic show
> $ rdma statistic qp mode
> 
> Thanks
> 
> Mark Zhang (16):
>   net/mlx5: Add rts2rts_qp_counters_set_id field in hca cap
>   RDMA/restrack: Introduce statistic counter
>   RDMA/restrack: Add an API to attach a task to a resource
>   RDMA/restrack: Make is_visible_in_pid_ns() as an API
>   RDMA/counter: Add set/clear per-port auto mode support
>   RDMA/counter: Add "auto" configuration mode support
>   IB/mlx5: Support set qp counter
>   IB/mlx5: Add counter set id as a parameter for mlx5_ib_query_q_counters()
>   IB/mlx5: Support statistic q counter configuration
>   RDMA/nldev: Allow counter auto mode configuration through RDMA netlink
>   RDMA/netlink: Implement counter dumpit callback
>   IB/mlx5: Add counter_alloc_stats() and counter_update_stats() support
>   RDMA/core: Get sum value of all counters when perform a sysfs stat read
>   RDMA/counter: Allow manual mode configuration support
>   RDMA/nldev: Allow counter manual mode configuration through RDMA netlink
>   RDMA/nldev: Allow get counter mode through RDMA netlink
> 
>  drivers/infiniband/core/Makefile     |   2 +-
>  drivers/infiniband/core/counters.c   | 652 +++++++++++++++++++++++++++
>  drivers/infiniband/core/device.c     |  14 +
>  drivers/infiniband/core/nldev.c      | 427 +++++++++++++++++-
>  drivers/infiniband/core/restrack.c   |  49 +-
>  drivers/infiniband/core/restrack.h   |   3 +
>  drivers/infiniband/core/sysfs.c      |  10 +-
>  drivers/infiniband/core/verbs.c      |   9 +
>  drivers/infiniband/hw/mlx5/main.c    |  88 +++-
>  drivers/infiniband/hw/mlx5/mlx5_ib.h |   6 +
>  drivers/infiniband/hw/mlx5/qp.c      |  76 +++-
>  include/linux/mlx5/mlx5_ifc.h        |   4 +-
>  include/linux/mlx5/qp.h              |   1 +
>  include/rdma/ib_verbs.h              |  32 ++
>  include/rdma/rdma_counter.h          |  64 +++
>  include/rdma/restrack.h              |   4 +
>  include/uapi/rdma/rdma_netlink.h     |  52 ++-
>  17 files changed, 1462 insertions(+), 31 deletions(-)
>  create mode 100644 drivers/infiniband/core/counters.c
>  create mode 100644 include/rdma/rdma_counter.h
> 
> --
> 2.20.1
> 




[Index of Archives]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Photo]     [Yosemite News]     [Yosemite Photos]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux