linux-xiaomi-chiron/include/linux/mlx5
Yishai Hadas db72438c93 RDMA/mlx5: Cleanup the synchronize_srcu() from the ODP flow
Cleanup the synchronize_srcu() from the ODP flow as it was found to be a
very heavy time consumer as part of dereg_mr.

For example de-registration of 10000 ODP MRs each with size of 2M hugepage
took 19.6 sec comparing de-registration of same number of non ODP MRs that
took 172 ms.

The new locking scheme uses the wait_event() mechanism which follows the
use count of the MR instead of using synchronize_srcu().

By that change, the time required for the above test took 95 ms which is
even better than the non ODP flow.

Once fully dropped the srcu usage, had to come with a lock to protect the
XA access.

As part of using the above mechanism we could also clean the
num_deferred_work stuff and follow the use count instead.

Link: https://lore.kernel.org/r/20210202071309.2057998-1-leon@kernel.org
Signed-off-by: Yishai Hadas <yishaih@nvidia.com>
Signed-off-by: Leon Romanovsky <leonro@nvidia.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
2021-02-08 20:31:11 -04:00
..
accel.h net/mlx5: Accel, Add core IPsec support for the Connect-X family 2020-07-16 16:36:42 -07:00
cq.h net/mlx5: Avoid RDMA file inclusion in core driver 2020-06-27 13:50:46 -07:00
device.h net/mlx5: Update the hardware interface definition for vhca state 2020-11-26 18:43:48 -08:00
doorbell.h net/mlx5: Remove spinlock support from mlx5_write64 2019-04-02 12:49:37 -07:00
driver.h RDMA/mlx5: Cleanup the synchronize_srcu() from the ODP flow 2021-02-08 20:31:11 -04:00
eq.h net/mlx5: Use event mask based on device capabilities 2019-07-03 20:55:45 +03:00
eswitch.h net/mlx5: Simplify eswitch mode check 2020-12-06 07:43:54 +02:00
fs.h net/mlx5: Treat host PF vport as other (non eswitch manager) vport 2020-11-26 18:45:03 -08:00
fs_helpers.h {net,IB}/mlx5: Add ipsec helper 2018-04-04 12:06:27 -06:00
mlx5_ifc.h net/mlx5: Expose ifc bits for query modify header 2021-01-19 07:34:28 +02:00
mlx5_ifc_fpga.h net/mlx5: fix spelling mistake "reserverd" -> "reserved" 2020-02-18 15:44:07 +02:00
mlx5_ifc_vdpa.h vdpa/mlx5: Make hardware definitions visible to all mlx5 devices 2020-12-04 14:46:56 +02:00
port.h RDMA/mlx5: Delete duplicated mlx5_ptys_width enum 2020-09-17 19:33:03 +03:00
qp.h net/mlx5e: IPsec: Add TX steering rule per IPsec state 2020-10-12 15:37:45 -07:00
rsc_dump.h net/mlx5: Add support in query QP, CQ and MKEY segments 2020-06-23 17:26:10 +03:00
transobj.h net/mlx5: Update transobj.c new cmd interface 2020-04-23 21:42:16 +03:00
vport.h net/mlx5: Constify mac address pointer 2020-06-22 15:29:19 -07:00