sock/uring: reap if some sock has data in pipe

Since spdk_sock_group_poll should do level trigger to
the callback func registered in spdk_sock_group_add_sock,
if there is data in pipe, but not event occurs, poll func
should still reap sock who has data in pipe.

Change-Id: If3a983f80fd04708e45ad0398c7d34018ec52bc7
Signed-off-by: Liu Xiaodong <xiaodong.liu@intel.com>
Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/5072
Tested-by: SPDK CI Jenkins <sys_sgci@intel.com>
Reviewed-by: Ziye Yang <ziye.yang@intel.com>
Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
Reviewed-by: Aleksey Marchuk <alexeymar@mellanox.com>
Reviewed-by: Changpeng Liu <changpeng.liu@intel.com>
This commit is contained in:
Liu Xiaodong 2020-11-11 05:43:15 -05:00 committed by Tomasz Zawadzki
parent cc5ade1bfc
commit b7f7bbd16b

View File

@ -1248,7 +1248,7 @@ uring_sock_group_impl_poll(struct spdk_sock_group_impl *_group, int max_events,
count = 0; count = 0;
to_complete = group->io_inflight; to_complete = group->io_inflight;
if (to_complete > 0) { if (to_complete > 0 || !TAILQ_EMPTY(&group->pending_recv)) {
count = sock_uring_group_reap(group, to_complete, max_events, socks); count = sock_uring_group_reap(group, to_complete, max_events, socks);
} }