]> git.baikalelectronics.ru Git - kernel.git/commit
RDMA/irdma: Add SW mechanism to generate completions on error
authorMustafa Ismail <mustafa.ismail@intel.com>
Mon, 25 Apr 2022 18:16:24 +0000 (13:16 -0500)
committerJason Gunthorpe <jgg@nvidia.com>
Wed, 11 May 2022 18:58:40 +0000 (15:58 -0300)
commitab3403d35c1e675c8d7aafd73692ae956b20dd32
treee949b113ef7aa37039994a3242c57576709a8712
parent6c98ddd77cb0dfa36b758a87f3b1f74b8bba9dce
RDMA/irdma: Add SW mechanism to generate completions on error

HW flushes after QP in error state is not reliable. This can lead to
   application hang waiting on a completion for outstanding WRs.  Implement a
SW mechanism to generate completions for any outstanding WR's after the QP
is modified to error.

This is accomplished by starting a delayed worker after the QP is modified
to error and the HW flush is performed. The worker will generate
completions that will be returned to the application when it polls the
CQ. This mechanism only applies to Kernel applications.

Link: https://lore.kernel.org/r/20220425181624.1617-1-shiraz.saleem@intel.com
Signed-off-by: Mustafa Ismail <mustafa.ismail@intel.com>
Signed-off-by: Shiraz Saleem <shiraz.saleem@intel.com>
Signed-off-by: Jason Gunthorpe <jgg@nvidia.com>
drivers/infiniband/hw/irdma/hw.c
drivers/infiniband/hw/irdma/utils.c
drivers/infiniband/hw/irdma/verbs.c
drivers/infiniband/hw/irdma/verbs.h