linux/drivers/infiniband/hw/i40iw
Christoph Lameter b40f4757da IB/core: Make device counter infrastructure dynamic
In practice, each RDMA device has a unique set of counters that the
hardware implements.  Having a central set of counters that they must
all adhere to is limiting and causes many useful counters to not be
available.

Therefore we create a dynamic counter registration infrastructure.

The driver must implement a stats structure allocation routine, in
which the driver must place the directory name it wants, a list of
names for all of the counters, an array of u64 counters themselves,
plus a few generic configuration options.

We then implement a core routine to create a sysfs file for each
of the named stats elements, and a core routine to retrieve the
stats when any of the sysfs attribute files are read.

To avoid excessive beating on the stats generation routine in the
drivers, the core code also caches the stats for a short period of
time so that someone attempting to read all of the stats in a
given device's directory will not result in a stats generation
call per file read.

Future work will attempt to standardize just the shared stats
elements, and possibly add a method to get the stats via netlink
in addition to sysfs.

Signed-off-by: Christoph Lameter <cl@linux.com>
Signed-off-by: Mark Bloch <markb@mellanox.com>
Reviewed-by: Steve Wise <swise@opengridcomputing.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
[ Add caching, make structure names more informative, add i40iw support,
  other significant rewrites from the original patch ]
2016-05-26 12:52:51 -04:00
..
i40iw_cm.c RDMA/i40iw: Fix for removing quad hash entries 2016-04-28 16:32:55 -04:00
i40iw_cm.h RDMA/i40iw: Remove unused code and fix warning 2016-04-28 16:32:54 -04:00
i40iw_ctrl.c RDMA/i40iw: Fix SD calculation for initial HMC creation 2016-04-28 16:32:54 -04:00
i40iw_d.h RDMA/i40iw: Fixes for WQE alignment 2016-04-28 16:32:54 -04:00
i40iw_hmc.c i40iw: add hmc resource files 2016-02-29 17:10:53 -05:00
i40iw_hmc.h i40iw: add hmc resource files 2016-02-29 17:10:53 -05:00
i40iw_hw.c RDMA/i40iw: Correct STag mask to min of 14 bits 2016-04-28 16:32:54 -04:00
i40iw_main.c i40iw: Remove unnecessary synchronize_irq() before free_irq() 2016-05-13 13:47:08 -04:00
i40iw_osdep.h RDMA/i40iw: Add virtual channel message queue 2016-04-28 16:32:54 -04:00
i40iw_p.h i40iw: add hardware related header files 2016-03-16 13:50:52 -04:00
i40iw_pble.c RDMA/i40iw: Correct return code check in add_pble_pool 2016-04-28 16:32:54 -04:00
i40iw_pble.h i40iw: add pble resource files 2016-02-29 17:10:53 -05:00
i40iw_puda.c RDMA/i40iw: Fix endian issues and warnings 2016-04-28 16:32:54 -04:00
i40iw_puda.h i40iw: Replace the obsolete crypto hash interface with shash 2016-03-21 16:02:24 -04:00
i40iw_register.h i40iw: add X722 register file 2016-03-16 13:50:53 -04:00
i40iw_status.h RDMA/i40iw: Fix for checking if the QP is destroyed 2016-04-28 16:32:55 -04:00
i40iw_type.h i40iw: constify i40iw_vf_cqp_ops structure 2016-05-13 13:47:07 -04:00
i40iw_ucontext.h i40iw: add files for iwarp interface 2016-02-29 17:10:53 -05:00
i40iw_uk.c RDMA/i40iw: Fix for checking if the QP is destroyed 2016-04-28 16:32:55 -04:00
i40iw_user.h RDMA/i40iw: Correct QP size calculation 2016-04-28 16:32:53 -04:00
i40iw_utils.c RDMA/i40iw: Fix endian issues and warnings 2016-04-28 16:32:54 -04:00
i40iw_verbs.c IB/core: Make device counter infrastructure dynamic 2016-05-26 12:52:51 -04:00
i40iw_verbs.h RDMA/i40iw: Adding queue drain functions 2016-04-28 16:32:54 -04:00
i40iw_vf.c i40iw: constify i40iw_vf_cqp_ops structure 2016-05-13 13:47:07 -04:00
i40iw_vf.h i40iw: constify i40iw_vf_cqp_ops structure 2016-05-13 13:47:07 -04:00
i40iw_virtchnl.c i40iw: pass hw_stats by reference rather than by value 2016-05-13 13:47:08 -04:00
i40iw_virtchnl.h i40iw: virtual channel handling files 2016-03-16 13:50:53 -04:00
i40iw.h RDMA/i40iw: Fix endian issues and warnings 2016-04-28 16:32:54 -04:00
Kconfig i40iw: Kconfig and Makefile for iwarp module 2016-03-16 13:50:54 -04:00
Makefile i40iw: Kconfig and Makefile for iwarp module 2016-03-16 13:50:54 -04:00