Patch "IB/mlx5: Wait for all async command completions to complete" has been added to the 4.9-stable tree
Subsystems (3)
This is a note to let you know that I've just added the patch titled
IB/mlx5: Wait for all async command completions to complete
to the 4.9-stable tree which can be found at:
http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary
The filename of the patch is:
ib-mlx5-wait-for-all-async-command-completions-to-complete.patch
and it can be found in the queue-4.9 subdirectory.
If you, or anyone else, feels it should not be added to the stable tree, please let <[email protected]> know about it.
Quoted 1 line
From
acbda523884dcf45613bf6818d8ead5180df35c2Mon Sep 17 00:00:00 2001
From: Eli Cohen <[email protected]>
Date: Thu, 27 Oct 2016 16:36:43 +0300
Subject: IB/mlx5: Wait for all async command completions to complete
From: Eli Cohen <[email protected]>
commit acbda523884dcf45613bf6818d8ead5180df35c2 upstream.
Wait before continuing unload till all pending mkey async creation requests are done.
--- drivers/infiniband/hw/mlx5/mr.c | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+)
drivers/infiniband/hw/mlx5/mr.c +28 -0
@@ -647,6 +647,33 @@ int mlx5_mr_cache_init(struct mlx5_ib_dereturn 0 ; } +static void wait_for_async_commands (struct mlx5_ib_dev *dev) +{ +struct mlx5_mr_cache *cache = &dev->cache; +struct mlx5_cache_ent *ent; +int total =0 ; +int i; +int j; + +for (i =0 ; i <MAX_MR_CACHE_ENTRIES ; i++) { + ent = &cache->ent[i]; +for (j =0 ; j <1000 ; j++) { +if (!ent->pending) +break ; +msleep (50 ); + } + } +for (i =0 ; i <MAX_MR_CACHE_ENTRIES ; i++) { + ent = &cache->ent[i]; + total += ent->pending; + } + +if (total) +mlx5_ib_warn (dev,"aborted while there are %d pending mr requests\n" , total); +else +mlx5_ib_warn (dev,"done with all pending requests\n" ); +} +int mlx5_mr_cache_cleanup (struct mlx5_ib_dev *dev) {int i;
@@ -660,6 +687,7 @@ int mlx5_mr_cache_cleanup(struct mlx5_ibclean_keys (dev, i);destroy_workqueue (dev->cache.wq); +wait_for_async_commands (dev);del_timer_sync (&dev->delay_timer);return 0 ;
Patches currently in stable-queue which might be from [email protected] are
queue-4.9/ib-mlx5-avoid-system-crash-when-enabling-many-vfs.patch queue-4.9/ib-mlx5-wait-for-all-async-command-completions-to-complete.patch queue-4.9/ib-mlx5-fix-reported-max-sge-calculation.patch