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> |
||
---|---|---|
.. | ||
idxd_kernel.c | ||
idxd_spec.h | ||
idxd_user.c | ||
idxd.c | ||
idxd.h | ||
Makefile | ||
spdk_idxd.map |