• Jason Gunthorpe's avatar
    Merge branch 'odp_rework' into rdma.git for-next · bb3dba33
    Jason Gunthorpe authored
    Jason Gunthorpe says:
    
    ====================
    In order to hoist the interval tree code out of the drivers and into the
    mmu_notifiers it is necessary for the drivers to not use the interval tree
    for other things.
    
    This series replaces the interval tree with an xarray and along the way
    re-aligns all the locking to use a sensible SRCU model where the 'update'
    step is done by modifying an xarray.
    
    The result is overall much simpler and with less locking in the critical
    path. Many functions were reworked for clarity and small details like
    using 'imr' to refer to the implicit MR make the entire code flow here
    more readable.
    
    This also squashes at least two race bugs on its own, and quite possibily
    more that haven't been identified.
    ====================
    
    Merge conflicts with the odp statistics patch resolved.
    
    * branch 'odp_rework':
      RDMA/odp: Remove broken debugging call to invalidate_range
      RDMA/mlx5: Do not race with mlx5_ib_invalidate_range during create and destroy
      RDMA/mlx5: Do not store implicit children in the odp_mkeys xarray
      RDMA/mlx5: Rework implicit ODP destroy
      RDMA/mlx5: Avoid double lookups on the pagefault path
      RDMA/mlx5: Reduce locking in implicit_mr_get_data()
      RDMA/mlx5: Use an xarray for the children of an implicit ODP
      RDMA/mlx5: Split implicit handling from pagefault_mr
      RDMA/mlx5: Set the HW IOVA of the child MRs to their place in the tree
      RDMA/mlx5: Lift implicit_mr_alloc() into the two routines that call it
      RDMA/mlx5: Rework implicit_mr_get_data
      RDMA/mlx5: Delete struct mlx5_priv->mkey_table
      RDMA/mlx5: Use a dedicated mkey xarray for ODP
      RDMA/mlx5: Split sig_err MR data into its own xarray
      RDMA/mlx5: Use SRCU properly in ODP prefetch
    Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
    bb3dba33
main.c 186 KB