+2
−2
+14
−5
+14
−4
Loading
In a use case, a custom sock module supports zero copy for read. The custom sock module wants to keep the recv_buf_size to be sufficiently large, for example 16MB. However, most upper layers overwrite the recv_buf_size by a smaller value via spdk_sock_set_recvbuf() later. This is not desirable. To fix the described issue, change the meaning of impl_opts->recv_buf_size to be the minimum size, and spdk_sock_set_recvbuf() uses the maximum value among the requested size, g_spdk_sock_impl_opts->recv_buf_size, and MIN_SO_RCVBUF_SIZE. We may have to change the code to initially create a socket. However, for most cases, the upper layer calls spdk_sock_set_recvbuf() anyway. Hence this fix will be minimal and enough. For the use case, it is enough to change recv_buf_size of the posix sock module. However, the custom sock module may support I/O uring in future. Hence, change I/O uring sock module together. Additionally, for consistency, change the meaning of impl_opts->send_buf_size to be the minimum size, and spdk_sock_set_sendbuf() uses the maximum value among the requested size, g_spdk_sock_impl_opts->send_buf_size, and MIN_SO_SNDBUF_SIZE. Signed-off-by:Shuhei Matsumoto <smatsumoto@nvidia.com> Change-Id: I051ba7cb50bc9dcad229e922198b04fe45335219 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/14915 Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Konrad Sztyber <konrad.sztyber@intel.com> Reviewed-by:
Aleksey Marchuk <alexeymar@nvidia.com> Community-CI: Mellanox Build Bot