From 6151ea721b9b9334d9f1b236fc6b786c63ba38d5 Mon Sep 17 00:00:00 2001 From: YuQing <384681@qq.com> Date: Wed, 27 Sep 2023 11:36:29 +0800 Subject: [PATCH] function conn_pool_set_rdma_extra_params_ex support double_buffers --- src/connection_pool.c | 8 +++++--- src/connection_pool.h | 15 +++++++++++++-- 2 files changed, 18 insertions(+), 5 deletions(-) diff --git a/src/connection_pool.c b/src/connection_pool.c index 5c5372c..18d37ef 100644 --- a/src/connection_pool.c +++ b/src/connection_pool.c @@ -838,8 +838,9 @@ ConnectionInfo *conn_pool_alloc_connection_ex( return conn; } -int conn_pool_set_rdma_extra_params(ConnectionExtraParams *extra_params, - struct fc_server_config *server_cfg, const int server_group_index) +int conn_pool_set_rdma_extra_params_ex(ConnectionExtraParams *extra_params, + struct fc_server_config *server_cfg, const int server_group_index, + const bool double_buffers) { const int padding_size = 1024; FCServerGroupInfo *server_group; @@ -876,13 +877,14 @@ int conn_pool_set_rdma_extra_params(ConnectionExtraParams *extra_params, extra_params->tls.htable_capacity = 0; } - extra_params->rdma.double_buffers = false; if (server_group->comm_type == fc_comm_type_sock) { + extra_params->rdma.double_buffers = false; extra_params->rdma.buffer_size = 0; extra_params->rdma.pd = NULL; return 0; } else { first_server = FC_SID_SERVERS(*server_cfg); + extra_params->rdma.double_buffers = double_buffers; extra_params->rdma.buffer_size = server_cfg->buffer_size + padding_size; extra_params->rdma.pd = fc_alloc_rdma_pd(G_RDMA_CONNECTION_CALLBACKS. alloc_pd, &first_server->group_addrs[server_group_index]. diff --git a/src/connection_pool.h b/src/connection_pool.h index eb495ba..1cb372b 100644 --- a/src/connection_pool.h +++ b/src/connection_pool.h @@ -475,8 +475,19 @@ static inline void conn_pool_free_connection(ConnectionInfo *conn) free(conn); } -int conn_pool_set_rdma_extra_params(ConnectionExtraParams *extra_params, - struct fc_server_config *server_cfg, const int server_group_index); +int conn_pool_set_rdma_extra_params_ex(ConnectionExtraParams *extra_params, + struct fc_server_config *server_cfg, const int server_group_index, + const bool double_buffers); + +static inline int conn_pool_set_rdma_extra_params( + ConnectionExtraParams *extra_params, + struct fc_server_config *server_cfg, + const int server_group_index) +{ + const bool double_buffers = false; + return conn_pool_set_rdma_extra_params_ex(extra_params, + server_cfg, server_group_index, double_buffers); +} static inline const char *fc_comm_type_str(const FCCommunicationType type) {