mirror of https://gitee.com/openkylin/linux.git
IB/mlx5: Avoid system crash when enabling many VFs
When enabling many VFs, the total amount of DMA mappings increase
significantly. This causes DMA allocations to take a lot of time
since they are serialized in the kernel.
As a result the driver enters into fatal condition due to
timeout and the system hangs. To recover from this we disable
MR cache for VFs.
PFs will still have a full cache and VFs cache can be manipulated
as usual after driver load.
Fixes: e126ba97db
('mlx5: Add driver for Mellanox Connect-IB adapters')
Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Maor Gottlieb <maorg@mellanox.com>
Signed-off-by: Leon Romanovsky <leon@kernel.org>
Signed-off-by: Doug Ledford <dledford@redhat.com>
This commit is contained in:
parent
c73b7911de
commit
afd02cd3a9
|
@ -627,7 +627,8 @@ int mlx5_mr_cache_init(struct mlx5_ib_dev *dev)
|
||||||
ent->order = i + 2;
|
ent->order = i + 2;
|
||||||
ent->dev = dev;
|
ent->dev = dev;
|
||||||
|
|
||||||
if (dev->mdev->profile->mask & MLX5_PROF_MASK_MR_CACHE)
|
if ((dev->mdev->profile->mask & MLX5_PROF_MASK_MR_CACHE) &&
|
||||||
|
(mlx5_core_is_pf(dev->mdev)))
|
||||||
limit = dev->mdev->profile->mr_cache[i].limit;
|
limit = dev->mdev->profile->mr_cache[i].limit;
|
||||||
else
|
else
|
||||||
limit = 0;
|
limit = 0;
|
||||||
|
|
Loading…
Reference in New Issue