Commit ccffa545 authored by Leon Romanovsky's avatar Leon Romanovsky Committed by Jason Gunthorpe
Browse files

Revert "IB/mlx5: Fix long EEH recover time with NVMe offloads"



Longer term testing shows this patch didn't play well with MR cache and
caused to call traces during remove_mkeys().

This reverts commit bb7e22a8.

Signed-off-by: default avatarLeon Romanovsky <leonro@mellanox.com>
Signed-off-by: default avatarJason Gunthorpe <jgg@mellanox.com>
parent 7422edce
Loading
Loading
Loading
Loading
+3 −16
Original line number Diff line number Diff line
@@ -73,7 +73,6 @@ static int destroy_mkey(struct mlx5_ib_dev *dev, struct mlx5_ib_mr *mr)

#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING
	/* Wait until all page fault handlers using the mr complete. */
	if (mr->umem && mr->umem->is_odp)
	synchronize_srcu(&dev->mr_srcu);
#endif

@@ -238,9 +237,6 @@ static void remove_keys(struct mlx5_ib_dev *dev, int c, int num)
{
	struct mlx5_mr_cache *cache = &dev->cache;
	struct mlx5_cache_ent *ent = &cache->ent[c];
#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING
	bool odp_mkey_exist = false;
#endif
	struct mlx5_ib_mr *tmp_mr;
	struct mlx5_ib_mr *mr;
	LIST_HEAD(del_list);
@@ -253,10 +249,6 @@ static void remove_keys(struct mlx5_ib_dev *dev, int c, int num)
			break;
		}
		mr = list_first_entry(&ent->head, struct mlx5_ib_mr, list);
#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING
		if (mr->umem && mr->umem->is_odp)
			odp_mkey_exist = true;
#endif
		list_move(&mr->list, &del_list);
		ent->cur--;
		ent->size--;
@@ -265,7 +257,6 @@ static void remove_keys(struct mlx5_ib_dev *dev, int c, int num)
	}

#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING
	if (odp_mkey_exist)
	synchronize_srcu(&dev->mr_srcu);
#endif

@@ -581,7 +572,6 @@ static void clean_keys(struct mlx5_ib_dev *dev, int c)
{
	struct mlx5_mr_cache *cache = &dev->cache;
	struct mlx5_cache_ent *ent = &cache->ent[c];
	bool odp_mkey_exist = false;
	struct mlx5_ib_mr *tmp_mr;
	struct mlx5_ib_mr *mr;
	LIST_HEAD(del_list);
@@ -594,8 +584,6 @@ static void clean_keys(struct mlx5_ib_dev *dev, int c)
			break;
		}
		mr = list_first_entry(&ent->head, struct mlx5_ib_mr, list);
		if (mr->umem && mr->umem->is_odp)
			odp_mkey_exist = true;
		list_move(&mr->list, &del_list);
		ent->cur--;
		ent->size--;
@@ -604,7 +592,6 @@ static void clean_keys(struct mlx5_ib_dev *dev, int c)
	}

#ifdef CONFIG_INFINIBAND_ON_DEMAND_PAGING
	if (odp_mkey_exist)
	synchronize_srcu(&dev->mr_srcu);
#endif