History

Merge branch 'odp_rework' into rdma.git for-next

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

Jason Gunthorpe committed 7 years ago

Commit bb3dba32 parents 0363133 46870b211 files · +624 −663Browse files

Showing the changes to include/linux (1 of 11 files). Show all

Unified · Split

include/linux/mlx5/driver.h+0−4
@@ -556,8 +556,6 @@ struct mlx5_priv { · 555 unmodified lines
556 struct dentry *cmdif_debugfs;556 struct dentry *cmdif_debugfs;
557 /* end: qp staff */557 /* end: qp staff */
558 558
559 struct xarray mkey_table;
560
561 /* start: alloc staff */559 /* start: alloc staff */
562 /* protect buffer alocation according to numa node */560 /* protect buffer alocation according to numa node */
563 struct mutex alloc_mutex;561 struct mutex alloc_mutex;
@@ -942,8 +940,6 @@ struct mlx5_cmd_mailbox *mlx5_alloc_cmd_mailbox_chain(struct mlx5_core_dev *dev, · 378 unmodified lines
942 gfp_t flags, int npages);940 gfp_t flags, int npages);
943void mlx5_free_cmd_mailbox_chain(struct mlx5_core_dev *dev,941void mlx5_free_cmd_mailbox_chain(struct mlx5_core_dev *dev,
944 struct mlx5_cmd_mailbox *head);942 struct mlx5_cmd_mailbox *head);
945void mlx5_init_mkey_table(struct mlx5_core_dev *dev);
946void mlx5_cleanup_mkey_table(struct mlx5_core_dev *dev);
947int mlx5_core_create_mkey_cb(struct mlx5_core_dev *dev,943int mlx5_core_create_mkey_cb(struct mlx5_core_dev *dev,
948 struct mlx5_core_mkey *mkey,944 struct mlx5_core_mkey *mkey,
949 struct mlx5_async_ctx *async_ctx, u32 *in,945 struct mlx5_async_ctx *async_ctx, u32 *in,

Keyboard shortcuts

General

Show keyboard shortcuts
?
Focus the current search
/

Issues and pull requests

Open filters
f

Issues, pull requests and Inbox

Select next item
j↓
Select previous item
k↑
Open selected item
Enter
Dismiss filters or clear selection
Esc

Repository code

Go to file
t