linux/drivers/infiniband/hw/irdma
Krzysztof Czurylo 5a711e5807 RDMA/irdma: Refactor HW statistics
Refactor HW statistics which,

- Unifies HW statistics support for all HW generations.

- Unifies support of 32- and 64-bit counters.

- Removes duplicated code and simplifies implementation.

- Fixes roll-over handling.

- Removes unneeded last_hw_stats.

With new implementation, there is no separate handling and no separate
arrays for 32- and 64-bit counters (offsets, regs, values). Instead,
there is a HW stats map array for each HW revision, which defines
HW-specific width and location of each counter in the statistics buffer.

Once the statistics are gathered (either via CQP op, or by reading HW
registers), counter values are extracted from the statistics buffer using
the stats map and the delta between the last and new values is computed.
Finally, the counter values in rdma_hw_stats are incremented by those
deltas.

From the OS perspective, all the counters are 64-bit and their order in
rdma_hw_stats->value[] array, as well as in irdma_hw_stat_names[], is the
same for all HW gens.  New statistics should always be added at the end.

Signed-off-by: Krzysztof Czurylo <krzysztof.czurylo@intel.com>
Signed-off-by: Youvaraj Sagar <youvaraj.sagar@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Link: https://lore.kernel.org/r/20230315145305.955-2-shiraz.saleem@intel.com
Signed-off-by: Leon Romanovsky <leon@kernel.org>
2023-03-19 11:36:03 +02:00
..
cm.c RDMA/irdma: Fix potential NULL-ptr-dereference 2023-01-29 14:55:54 +02:00
cm.h RDMA/irdma: Add support for DSCP 2022-02-08 12:54:47 -04:00
ctrl.c RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
defs.h RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
hmc.c RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00
hmc.h RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00
hw.c RDMA/irdma: Cap MSIX used to online CPUs + 1 2023-02-08 10:28:13 +02:00
i40iw_hw.c RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
i40iw_hw.h
i40iw_if.c RDMA/irdma: Fix Passthrough mode in VM 2022-02-28 12:07:40 -04:00
icrdma_hw.c RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
icrdma_hw.h
irdma.h RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
Kconfig RDMA/irdma: Use correct kconfig symbol for AUXILIARY_BUS 2021-08-19 10:28:49 -03:00
main.c RDMA/irdma: Add support for address handle re-use 2022-03-15 16:22:55 -03:00
main.h RDMA/irdma: Add 2 level PBLE support for FMR 2022-07-18 10:39:28 +03:00
Makefile RDMA/irdma: Add irdma Kconfig/Makefile and remove i40iw 2021-06-02 20:06:36 -03:00
osdep.h RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00
pble.c RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00
pble.h RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00
protos.h RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
puda.c RDMA/irdma: Remove the redundant variable 2022-04-04 10:50:24 -03:00
puda.h RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00
trace_cm.h RDMA: Constify netdev->dev_addr accesses 2021-10-25 14:33:09 -03:00
trace.c RDMA/irdma: Add dynamic tracing for CM 2021-06-02 19:55:19 -03:00
trace.h RDMA/irdma: Add dynamic tracing for CM 2021-06-02 19:55:19 -03:00
type.h RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
uda_d.h RDMA/irdma: Add RoCEv2 UD OP support 2021-06-02 19:55:18 -03:00
uda.c RDMA/irdma: Make irdma_create_mg_ctx return a void 2022-02-28 11:32:42 -04:00
uda.h RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00
uk.c RDMA/irdma: Fix RQ completion opcode 2022-11-17 10:41:28 +02:00
user.h RDMA/irdma: Fix RQ completion opcode 2022-11-17 10:41:28 +02:00
utils.c RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
verbs.c RDMA/irdma: Refactor HW statistics 2023-03-19 11:36:03 +02:00
verbs.h RDMA/irdma: Fix RQ completion opcode 2022-11-17 10:41:28 +02:00
ws.c RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00
ws.h RDMA/irdma: Remove enum irdma_status_code 2022-02-23 15:24:18 -04:00