numam-dpdk/drivers/net
Matan Azrad 5382d28c21 net/mlx5: accelerate DV flow counter transactions
The DevX interface exposes a new feature to the PMD that can allocate a
batch of counters by one FW command. It can improve the flow
transaction rate (with count action).

Add a new counter pools mechanism to manage HW counters in the PMD.
So, for each flow with counter creation the PMD will try to find a free
counter in the PMD pools container and only if there is no a free
counter, it will allocate a new DevX batch counters.

Currently we cannot support batch counter for a group 0 flow, so
create a 2 container types, one which allocates counters one by
one and one which allocates X counters by the batch feature.

The allocated counters objects are never released back to the HW
assuming the flows maximum number will be close to the actual value of
the flows number.
Later, it can be updated, and dynamic release mechanism can be added.

The counters are contained in pools, each pool with 512 counters.
The pools are contained in counter containers according to the
allocation resolution type - single or batch.
The cache memory of the counters statistics is saved as raw data per
pool.
All the raw data memory is allocated for all the container in one
memory allocation and is managed by counter_stats_mem_mng structure
which registers all the raw memory to the HW.
Each pool points to one raw data structure.

The query operation is in pool resolution which updates all the pool
counter raw data by one operation.

Signed-off-by: Matan Azrad <matan@mellanox.com>
Acked-by: Shahaf Shuler <shahafs@mellanox.com>
2019-07-23 14:31:35 +02:00
..
af_packet net/af_packet: remove redundant declaration 2019-07-23 14:31:35 +02:00
af_xdp net/af_xdp: fix handling of not supported feature 2019-07-23 14:31:34 +02:00
ark drivers/net: fix double free on init failure 2019-06-28 20:31:49 +02:00
atlantic drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
avp drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
axgbe drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
bnx2x net/bnx2x: fix fastpath SB allocation for SRIOV 2019-07-23 14:31:34 +02:00
bnxt net/bnxt: create ring group array only when needed 2019-07-23 14:31:35 +02:00
bonding net/bonding: use new ethernet address parser 2019-07-08 21:26:52 +02:00
cxgbe net/cxgbe: remove unnecessary cast 2019-06-13 23:54:29 +09:00
dpaa net/dpaa: support interface init for multi-process 2019-07-07 23:13:25 +02:00
dpaa2 drivers: add reasons for components being disabled 2019-07-02 23:21:11 +02:00
e1000 drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
ena net/ena: update version to 2.0.1 2019-07-23 14:31:35 +02:00
enetc drivers: add reasons for components being disabled 2019-07-02 23:21:11 +02:00
enic net/enic: remove PMD log type references 2019-07-23 14:31:35 +02:00
failsafe net/failsafe: use new ethernet address parser 2019-07-08 21:26:52 +02:00
fm10k drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
hinic net/hinic: fix implicit downcast of bitfield 2019-07-23 14:31:35 +02:00
i40e drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
iavf net/iavf: fix driver crash when enable TSO 2019-07-23 14:31:35 +02:00
ice net/ice: fix outer input set empty 2019-07-23 14:31:35 +02:00
ifc net/ifc: add devargs pointer check 2019-07-23 14:31:35 +02:00
ipn3ke net/ipn3ke: implement statistics 2019-07-08 21:26:52 +02:00
ixgbe drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
kni drivers: add reasons for components being disabled 2019-07-02 23:21:11 +02:00
liquidio net: add rte prefix to ether defines 2019-05-24 13:34:45 +02:00
memif net/memif: use new ethernet address parser 2019-07-08 21:26:52 +02:00
mlx4 eal: fix IOVA mode selection as VA for PCI drivers 2019-07-22 17:45:52 +02:00
mlx5 net/mlx5: accelerate DV flow counter transactions 2019-07-23 14:31:35 +02:00
mvneta net/mvneta: remove resources when port is closed 2019-07-08 21:26:52 +02:00
mvpp2 drivers: add reasons for components being disabled 2019-07-02 23:21:11 +02:00
netvsc net/netvsc: fix definition of offload values 2019-07-05 01:52:01 +02:00
nfb net/nfb: support timestamp 2019-07-23 14:31:34 +02:00
nfp drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
null net/null: remove redundant declaration 2019-07-23 14:31:35 +02:00
octeontx net: add rte prefix to ether defines 2019-05-24 13:34:45 +02:00
octeontx2 net/octeontx2: support flow API flags based extraction 2019-07-23 14:31:35 +02:00
pcap net/pcap: fix single iface support 2019-07-23 14:31:35 +02:00
qede drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
ring net/ring: remove redundant declaration 2019-07-23 14:31:35 +02:00
sfc drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
softnic net/softnic: add config flexibility to TM 2019-07-22 15:41:50 +02:00
szedata2 net/szedata2: support Silicom Mango card 2019-07-03 12:57:30 +02:00
tap net/tap: remove redundant declarations 2019-07-23 14:31:34 +02:00
thunderx drivers/net: fix double free on init failure 2019-06-28 20:31:49 +02:00
vdev_netvsc net/vdev_netvsc: use new ethernet address parser 2019-07-08 21:26:52 +02:00
vhost net/vhost: remove redundant declaration 2019-07-23 14:31:35 +02:00
virtio net/virtio_user: remove redundant declaration 2019-07-23 14:31:35 +02:00
vmxnet3 drivers/net: use ack in interrupt handlers 2019-07-23 12:00:23 +02:00
Makefile net/octeontx2: add build and doc infrastructure 2019-07-05 01:52:01 +02:00
meson.build net/octeontx2: add build and doc infrastructure 2019-07-05 01:52:01 +02:00