]> git.proxmox.com Git - mirror_ubuntu-kernels.git/commit
IB/mlx5: Postpone remove_keys under knowledge of coming preemption
authorLeon Romanovsky <leonro@mellanox.com>
Wed, 21 Oct 2015 06:21:17 +0000 (09:21 +0300)
committerDoug Ledford <dledford@redhat.com>
Tue, 8 Dec 2015 21:55:31 +0000 (16:55 -0500)
commitab5cdc31630c7596d81ca8fbe7d695f10666f39b
treec544b85a8b79e6bf9d1f57dc8eaf63df58b3154c
parent0ef2f05c7e02ff99c0b5b583d7dee2cd12b053f2
IB/mlx5: Postpone remove_keys under knowledge of coming preemption

The remove_keys() logic is performed as garbage collection task. Such
task is intended to be run when no other active processes are running.

The need_resched() will return TRUE if there are user tasks to be
activated in near future.

In such case, we don't execute remove_keys() and postpone
the garbage collection work to try to run in next cycle,
in order to free CPU resources to other tasks.

The possible pseudo-code to trigger such scenario:
1. Allocate a lot of MR to fill the cache above the limit.
2. Wait a small amount of time "to calm" the system.
3. Start CPU extensive operations on multi-node cluster.
4. Expect performance degradation during MR cache shrink operation.

Signed-off-by: Leon Romanovsky <leonro@mellanox.com>
Signed-off-by: Eli Cohen <eli@mellanox.com>
Signed-off-by: Doug Ledford <dledford@redhat.com>
drivers/infiniband/hw/mlx5/mr.c