Receive pipe reduces number of system calls and gives significant performance improvement with kernel TCP stack and relatively small IO sizes. With user space TCP/IP implementations there are no system calls and double buffering introduced by pipe has negative impact on performance. Receive pipe remains enabled by default. Signed-off-by: Evgeniy Kochetov <evgeniik@mellanox.com> Change-Id: Ic5ddee42293df2c233ba7ffbe6662de7917ac586 Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/3343 Tested-by: SPDK CI Jenkins <sys_sgci@intel.com> Community-CI: Mellanox Build Bot Reviewed-by: Jim Harris <james.r.harris@intel.com> Reviewed-by: Shuhei Matsumoto <shuhei.matsumoto.xt@hitachi.com>
38 lines
1.2 KiB
Python
38 lines
1.2 KiB
Python
def sock_impl_get_options(client, impl_name=None):
|
|
"""Get parameters for the socket layer implementation.
|
|
|
|
Args:
|
|
impl_name: name of socket implementation, e.g. posix
|
|
"""
|
|
params = {}
|
|
|
|
params['impl_name'] = impl_name
|
|
|
|
return client.call('sock_impl_get_options', params)
|
|
|
|
|
|
def sock_impl_set_options(client,
|
|
impl_name=None,
|
|
recv_buf_size=None,
|
|
send_buf_size=None,
|
|
enable_recv_pipe=None):
|
|
"""Set parameters for the socket layer implementation.
|
|
|
|
Args:
|
|
impl_name: name of socket implementation, e.g. posix
|
|
recv_buf_size: size of socket receive buffer in bytes (optional)
|
|
send_buf_size: size of socket send buffer in bytes (optional)
|
|
enable_recv_pipe: enable or disable receive pipe (optional)
|
|
"""
|
|
params = {}
|
|
|
|
params['impl_name'] = impl_name
|
|
if recv_buf_size is not None:
|
|
params['recv_buf_size'] = recv_buf_size
|
|
if send_buf_size is not None:
|
|
params['send_buf_size'] = send_buf_size
|
|
if enable_recv_pipe is not None:
|
|
params['enable_recv_pipe'] = enable_recv_pipe
|
|
|
|
return client.call('sock_impl_set_options', params)
|