Spdk/lib/idxd
Ziye Yang caa1f84e1c lib/idxd: Fix the idxd_ops resource exhaustion in chan->ops_pool
The issue is that:

We call cb_fn firstly, then add the related idxd_ops into the
chan->ops_list. Then if in user's callback, we call spdk_idxd_submit_*
function gain, then we will allocate new idxd_opts first.  So if there is
recursive spdk_idxd_submit_* in the call back function, then
we will exhaust all the ops_pool resources. And the function will
report -EBUSY issue in _idxd_prep_command function.

And this patch fixes this issue by adding back idxd_ops before calling
user's call_cb function.

Change-Id: I32239fb29be875bc452803a48dc24ff5fa533016
Signed-off-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/9401
Community-CI: Broadcom CI <spdk-ci.pdl@broadcom.com>
Community-CI: Mellanox Build Bot
Reviewed-by: Jim Harris <james.r.harris@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
2021-09-08 07:59:21 +00:00
..
idxd_kernel.c lib/idxd: rotate portal offset with each submission 2021-07-15 21:04:08 +00:00
idxd_spec.h lib/idxd: pre translate completion record addresses 2021-08-12 12:57:07 +00:00
idxd_user.c lib/idxd: rotate portal offset with each submission 2021-07-15 21:04:08 +00:00
idxd.c lib/idxd: Fix the idxd_ops resource exhaustion in chan->ops_pool 2021-09-08 07:59:21 +00:00
idxd.h lib/idxd: batch perf improvement 2021-09-01 07:34:02 +00:00
Makefile lib/idxd: replace bit arrays with lists 2021-08-06 07:33:06 +00:00
spdk_idxd.map idxd: refactor flow control for idxd engine 2021-06-29 00:46:25 +00:00