mbox series

[v3,00/13] Remove FMR support from RDMA drivers

Message ID 0-v3-f58e6669d5d3+2cf-fmr_removal_jgg@mellanox.com (mailing list archive)
Headers show
Series Remove FMR support from RDMA drivers | expand

Message

Jason Gunthorpe May 28, 2020, 7:45 p.m. UTC
From: Jason Gunthorpe <jgg@mellanox.com>

This series removes the support for FMR mode to register memory. This
ancient mode is unsafe (rkeys that are usually exposed for caching
purposes and the API is limited to page granularity mappings) and not
maintained/tested in the last few years. It also doesn't have any
reasonable advantage over other memory registration methods such as
FRWR (that is implemented in all the recent RDMA adapters). This series
should be reviewed and approved by the maintainer of the effected drivers
and I suggest to test it as well.

Changes from V2:
 - Removed more occurances of _fmr
 - Remove max_map_per_fmr device attribute
 - Remove max_fmr device attribute
 - Remove additional dead code from bnxt_re and i40iw
 - Revised RDS to not use ib_fmr_attr or other fmr things
 - Rebased on RDMA for-next
Changes from V1:
 https://lore.kernel.org/linux-rdma/20200527094634.24240-1-maxg@mellanox.com/
 - added "RDMA/mlx5: Remove FMR leftovers" (from GalP)
 - rebased on top of "Linux 5.7-rc7"
 - added "Reviewed-by" Bart signature for SRP

Cc: shlomin@mellanox.com
Cc: vladimirk@mellanox.com
Cc: oren@mellanox.com

Gal Pressman (1):
  RDMA/mlx5: Remove FMR leftovers

Israel Rukshin (1):
  RDMA/iser: Remove support for FMR memory registration

Jason Gunthorpe (4):
  RDMA/bnxt_re: Remove FMR leftovers
  RDMA/i40iw: Remove FMR leftovers
  RDMA: Remove 'max_fmr'
  RDMA: Remove 'max_map_per_fmr'

Max Gurtovoy (7):
  RDMA/srp: Remove support for FMR memory registration
  RDMA/rds: Remove FMR support for memory registration
  RDMA/core: Remove FMR pool API
  RDMA/mlx4: Remove FMR support for memory registration
  RDMA/mthca: Remove FMR support for memory registration
  RDMA/rdmavt: Remove FMR memory registration
  RDMA/core: Remove FMR device ops

 Documentation/driver-api/infiniband.rst      |   3 -
 Documentation/infiniband/core_locking.rst    |   2 -
 drivers/infiniband/core/Makefile             |   2 +-
 drivers/infiniband/core/device.c             |   4 -
 drivers/infiniband/core/fmr_pool.c           | 494 -------------------
 drivers/infiniband/core/uverbs_cmd.c         |   2 -
 drivers/infiniband/core/verbs.c              |  48 --
 drivers/infiniband/hw/bnxt_re/ib_verbs.c     |   3 -
 drivers/infiniband/hw/bnxt_re/ib_verbs.h     |   6 -
 drivers/infiniband/hw/bnxt_re/qplib_sp.c     |   3 -
 drivers/infiniband/hw/bnxt_re/qplib_sp.h     |   2 -
 drivers/infiniband/hw/hfi1/verbs.c           |   1 -
 drivers/infiniband/hw/i40iw/i40iw.h          |   9 -
 drivers/infiniband/hw/i40iw/i40iw_verbs.c    |   1 -
 drivers/infiniband/hw/i40iw/i40iw_verbs.h    |   1 -
 drivers/infiniband/hw/mlx4/main.c            |  11 -
 drivers/infiniband/hw/mlx4/mlx4_ib.h         |  16 -
 drivers/infiniband/hw/mlx4/mr.c              |  93 ----
 drivers/infiniband/hw/mlx5/main.c            |   1 -
 drivers/infiniband/hw/mlx5/mlx5_ib.h         |   8 -
 drivers/infiniband/hw/mthca/mthca_dev.h      |  10 -
 drivers/infiniband/hw/mthca/mthca_mr.c       | 262 +---------
 drivers/infiniband/hw/mthca/mthca_provider.c |  96 ----
 drivers/infiniband/hw/mthca/mthca_provider.h |  23 -
 drivers/infiniband/hw/ocrdma/ocrdma.h        |   1 -
 drivers/infiniband/hw/ocrdma/ocrdma_hw.c     |   1 -
 drivers/infiniband/hw/ocrdma/ocrdma_verbs.c  |   2 -
 drivers/infiniband/hw/qedr/main.c            |   1 -
 drivers/infiniband/hw/qedr/qedr.h            |   1 -
 drivers/infiniband/hw/qedr/verbs.c           |   2 -
 drivers/infiniband/hw/qib/qib_verbs.c        |   1 -
 drivers/infiniband/hw/usnic/usnic_ib_verbs.c |   1 -
 drivers/infiniband/sw/rdmavt/mr.c            | 155 ------
 drivers/infiniband/sw/rdmavt/mr.h            |  15 -
 drivers/infiniband/sw/rdmavt/vt.c            |   4 -
 drivers/infiniband/sw/siw/siw.h              |   2 -
 drivers/infiniband/sw/siw/siw_main.c         |   1 -
 drivers/infiniband/sw/siw/siw_verbs.c        |   1 -
 drivers/infiniband/ulp/iser/iscsi_iser.h     |  79 +--
 drivers/infiniband/ulp/iser/iser_initiator.c |  19 +-
 drivers/infiniband/ulp/iser/iser_memory.c    | 188 +------
 drivers/infiniband/ulp/iser/iser_verbs.c     | 126 +----
 drivers/infiniband/ulp/srp/ib_srp.c          | 222 +--------
 drivers/infiniband/ulp/srp/ib_srp.h          |  27 +-
 drivers/net/ethernet/mellanox/mlx4/main.c    |   2 -
 drivers/net/ethernet/mellanox/mlx4/mr.c      | 183 -------
 drivers/net/ethernet/qlogic/qed/qed_rdma.c   |   1 -
 drivers/net/ethernet/qlogic/qed/qed_rdma.h   |   1 -
 include/linux/mlx4/device.h                  |  22 +-
 include/linux/qed/qed_rdma_if.h              |   1 -
 include/rdma/ib_fmr_pool.h                   |  93 ----
 include/rdma/ib_verbs.h                      |  61 ---
 net/rds/Makefile                             |   2 +-
 net/rds/ib.c                                 |  22 +-
 net/rds/ib.h                                 |   2 -
 net/rds/ib_cm.c                              |   4 +-
 net/rds/ib_fmr.c                             | 269 ----------
 net/rds/ib_frmr.c                            |   4 +-
 net/rds/ib_mr.h                              |  14 +-
 net/rds/ib_rdma.c                            |  28 +-
 60 files changed, 88 insertions(+), 2571 deletions(-)
 delete mode 100644 drivers/infiniband/core/fmr_pool.c
 delete mode 100644 include/rdma/ib_fmr_pool.h
 delete mode 100644 net/rds/ib_fmr.c

Comments

Jason Gunthorpe May 29, 2020, 7:17 p.m. UTC | #1
On Thu, May 28, 2020 at 04:45:42PM -0300, Jason Gunthorpe wrote:
> From: Jason Gunthorpe <jgg@mellanox.com>
> 
> This series removes the support for FMR mode to register memory. This
> ancient mode is unsafe (rkeys that are usually exposed for caching
> purposes and the API is limited to page granularity mappings) and not
> maintained/tested in the last few years. It also doesn't have any
> reasonable advantage over other memory registration methods such as
> FRWR (that is implemented in all the recent RDMA adapters). This series
> should be reviewed and approved by the maintainer of the effected drivers
> and I suggest to test it as well.
> 
> Changes from V2:
>  - Removed more occurances of _fmr
>  - Remove max_map_per_fmr device attribute
>  - Remove max_fmr device attribute
>  - Remove additional dead code from bnxt_re and i40iw
>  - Revised RDS to not use ib_fmr_attr or other fmr things
>  - Rebased on RDMA for-next
> Changes from V1:
>  https://lore.kernel.org/linux-rdma/20200527094634.24240-1-maxg@mellanox.com/
>  - added "RDMA/mlx5: Remove FMR leftovers" (from GalP)
>  - rebased on top of "Linux 5.7-rc7"
>  - added "Reviewed-by" Bart signature for SRP
> 
> Cc: shlomin@mellanox.com
> Cc: vladimirk@mellanox.com
> Cc: oren@mellanox.com
> 
> Gal Pressman (1):
>   RDMA/mlx5: Remove FMR leftovers
> 
> Israel Rukshin (1):
>   RDMA/iser: Remove support for FMR memory registration
> 
> Jason Gunthorpe (4):
>   RDMA/bnxt_re: Remove FMR leftovers
>   RDMA/i40iw: Remove FMR leftovers
>   RDMA: Remove 'max_fmr'
>   RDMA: Remove 'max_map_per_fmr'
> 
> Max Gurtovoy (7):
>   RDMA/srp: Remove support for FMR memory registration
>   RDMA/rds: Remove FMR support for memory registration
>   RDMA/core: Remove FMR pool API
>   RDMA/mlx4: Remove FMR support for memory registration
>   RDMA/mthca: Remove FMR support for memory registration
>   RDMA/rdmavt: Remove FMR memory registration
>   RDMA/core: Remove FMR device ops

Applied to for-next

Jason