kernel-ark/drivers/infiniband/core
Jason Gunthorpe 0f45e69d62 Verbs flow counters support
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.
 -----BEGIN PGP SIGNATURE-----
 
 iHQEABYIAB0WIQT1m3YD37UfMCUQBNwp8NhrnBAZsQUCWxIiqQAKCRAp8NhrnBAZ
 sWJRAPYl06nEfQjRlW//ZE/pO2oKXbfEevg7nnbpe80ERlxLAQDA2LHAcU7ma/NC
 hS5yxIq1gLSA27N+5qAoFVK8vJ5ZCg==
 =EiAV
 -----END PGP SIGNATURE-----

Merge tag 'verbs_flow_counters' of git://git.kernel.org/pub/scm/linux/kernel/git/leon/linux-rdma.git into for-next

Pull verbs counters series from Leon Romanovsky:

====================
Verbs flow counters support

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.

The API enables generic counters creation and define mapping to
association with a verbs object, the current mlx5 driver is 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.
===================

* tag 'verbs_flow_counters':
  IB/mlx5: Add counters read support
  IB/mlx5: Add flow counters read support
  IB/mlx5: Add flow counters binding support
  IB/mlx5: Add counters create and destroy support
  IB/uverbs: Add support for flow counters
  IB/core: Add support for flow counters
  IB/core: Support passing uhw for create_flow
  IB/uverbs: Add read counters support
  IB/core: Introduce counters read verb
  IB/uverbs: Add create/destroy counters support
  IB/core: Introduce counters object and its create/destroy
  IB/uverbs: Add an ib_uobject getter to ioctl() infrastructure
  net/mlx5: Export flow counter related API
  net/mlx5: Use flow counter pointer as input to the query function
2018-06-04 08:48:11 -06:00
..
addr.c RDMA/rdma_cm: Delete rdma_addr_client 2018-04-17 19:42:50 -06:00
agent.c
agent.h
cache.c RDMA/core: Remove indirection through ib_cache_setup() 2018-05-29 15:19:31 -06:00
cgroup.c
cm_msgs.h
cm.c RDMA/cm: Abort loop in case of CM dequeue 2018-06-01 11:16:23 -04:00
cma_configfs.c IB/cma: use strlcpy() instead of strncpy() 2018-01-15 15:33:21 -07:00
cma_priv.h RDMA/cma: Move rdma_cm_state to cma_priv.h 2018-03-29 13:54:21 -06:00
cma.c RDMA/cma: Ignore unknown event 2018-06-01 11:16:23 -04:00
core_priv.h RDMA/core: Remove indirection through ib_cache_setup() 2018-05-29 15:19:31 -06:00
cq.c RDMA/core: Reduce poll batch for direct cq polling 2018-03-06 20:08:39 -07:00
device.c RDMA/core: Remove indirection through ib_cache_setup() 2018-05-29 15:19:31 -06:00
fmr_pool.c infiniband: fix core/fmr_pool.c kernel-doc notation 2018-01-10 22:00:34 -07:00
iwcm.c RDMA/netlink: Fix general protection fault 2017-12-07 15:28:07 -05:00
iwcm.h
iwpm_msg.c
iwpm_util.c RDMA/iwpm: fix memory leak on map_info 2018-04-27 14:20:47 -04:00
iwpm_util.h
mad_priv.h
mad_rmpp.c
mad_rmpp.h
mad.c RDMA/mad: Convert BUG_ONs to error flows 2018-06-01 11:16:24 -04:00
Makefile Verbs flow counters support 2018-06-04 08:48:11 -06:00
mr_pool.c
multicast.c IB/core: Honor port_num while resolving GID for IB link layer 2018-03-15 14:40:37 -06:00
netlink.c RDMA/netlink: Simplify code of autoload modules 2018-01-02 13:36:57 -07:00
nldev.c RDMA/NLDEV: remove mr iova attribute 2018-05-15 16:17:38 -06:00
opa_smi.h
packer.c
rdma_core.c IB/uverbs: Tidy uverbs_uobject_add 2018-02-28 12:55:03 -07:00
rdma_core.h
restrack.c RDMA/nldev: add driver-specific resource tracking 2018-05-03 15:51:27 -04:00
roce_gid_mgmt.c IB/core: Remove duplicate declaration of gid_cache_wq 2018-05-24 09:39:25 -06:00
rw.c
sa_query.c IB/cma: Resolve route only while receiving CM requests 2018-03-23 10:58:05 -06:00
sa.h
security.c IB/core: Use CONFIG_SECURITY_INFINIBAND to compile out security code 2018-05-01 11:16:36 -04:00
smi.c
smi.h
sysfs.c IB/core: Refactor GID modify code for RoCE 2018-04-03 21:33:50 -06:00
ucm.c RDMA: Use u64_to_user_ptr everywhere 2018-03-29 13:42:29 -06:00
ucma.c RDMA/ucma: Allow resolving address w/o specifying source address 2018-04-23 11:04:05 -04:00
ud_header.c
umem_odp.c RDMA/umem: Avoid partial declaration of non-static function 2017-11-10 13:02:12 -05:00
umem.c Merge branch 'mr_fix' into git://git.kernel.org/pub/scm/linux/kernel/git/rdma/rdma for-next 2018-05-28 11:44:35 -06:00
user_mad.c vfs: do bulk POLL* -> EPOLL* replacement 2018-02-11 14:34:03 -08:00
uverbs_cmd.c Verbs flow counters support 2018-06-04 08:48:11 -06:00
uverbs_ioctl_merge.c IB/uverbs: Safely extend existing attributes 2018-03-19 14:45:17 -06:00
uverbs_ioctl.c IB/uverbs: Fix validating mandatory attributes 2018-04-27 13:53:41 -04:00
uverbs_main.c RDMA/uverbs: Hoist the common process of disassociate_ucontext into ib core 2018-05-30 20:45:03 -04:00
uverbs_marshall.c IB/core: Convert OPA AH to IB for Extended LIDs only 2017-11-13 15:53:57 -05:00
uverbs_std_types_counters.c IB/uverbs: Add read counters support 2018-06-02 07:33:55 +03:00
uverbs_std_types_cq.c IB/uverbs: Add an ib_uobject getter to ioctl() infrastructure 2018-06-02 07:33:53 +03:00
uverbs_std_types_dm.c IB/uverbs: Add alloc/free dm uverbs ioctl support 2018-04-05 11:16:39 -06:00
uverbs_std_types_flow_action.c Verbs flow counters support 2018-06-04 08:48:11 -06:00
uverbs_std_types_mr.c IB/uverbs: Add device memory registration ioctl support 2018-04-05 11:16:39 -06:00
uverbs_std_types.c IB/uverbs: Add create/destroy counters support 2018-06-02 07:33:54 +03:00
uverbs.h IB/uverbs: Add support for flow counters 2018-06-02 07:33:56 +03:00
verbs.c Verbs flow counters support 2018-06-04 08:48:11 -06:00