sf_load_config support fixed_buff_size
parent
2463725570
commit
fca50e6d49
|
|
@ -522,6 +522,7 @@ int sf_connection_manager_init_ex(SFConnectionManager *cm,
|
|||
const bool bg_thread_enabled)
|
||||
{
|
||||
const int socket_domain = AF_INET;
|
||||
const int padding_size = 1024;
|
||||
struct {
|
||||
ConnectionExtraParams holder;
|
||||
ConnectionExtraParams *ptr;
|
||||
|
|
@ -544,9 +545,18 @@ int sf_connection_manager_init_ex(SFConnectionManager *cm,
|
|||
if (server_group->comm_type == fc_comm_type_sock) {
|
||||
extra_params.ptr = NULL;
|
||||
} else {
|
||||
//TODO: fix me!!!
|
||||
extra_params.holder.buffer_size = 256 * 1024;
|
||||
extra_params.holder.pd = NULL;
|
||||
FCServerInfo *first_server;
|
||||
|
||||
first_server = FC_SID_SERVERS(*server_cfg);
|
||||
extra_params.holder.buffer_size = server_group->
|
||||
buffer_size + padding_size;
|
||||
extra_params.holder.pd = fc_alloc_rdma_pd(
|
||||
G_RDMA_CONNECTION_CALLBACKS.alloc_pd,
|
||||
&first_server->group_addrs[server_group_index].
|
||||
address_array, &result);
|
||||
if (result != 0) {
|
||||
return result;
|
||||
}
|
||||
extra_params.ptr = &extra_params.holder;
|
||||
}
|
||||
if ((result=conn_pool_init_ex1(&cm->cpool, common_cfg->connect_timeout,
|
||||
|
|
|
|||
|
|
@ -62,10 +62,11 @@ static inline void set_config_str_value(const char *value,
|
|||
}
|
||||
|
||||
static int load_network_parameters(IniFullContext *ini_ctx,
|
||||
const char *max_pkg_size_item_nm,
|
||||
const char *max_pkg_size_item_nm, const int fixed_buff_size,
|
||||
const int task_buffer_extra_size)
|
||||
{
|
||||
int result;
|
||||
int padding_buff_size;
|
||||
char *pMinBuffSize;
|
||||
char *pMaxBuffSize;
|
||||
|
||||
|
|
@ -95,6 +96,14 @@ static int load_network_parameters(IniFullContext *ini_ctx,
|
|||
return result;
|
||||
}
|
||||
|
||||
if (fixed_buff_size > 0) {
|
||||
padding_buff_size = fixed_buff_size + task_buffer_extra_size;
|
||||
g_sf_global_vars.min_buff_size = padding_buff_size;
|
||||
g_sf_global_vars.max_buff_size = padding_buff_size;
|
||||
g_sf_global_vars.max_pkg_size = padding_buff_size;
|
||||
return 0;
|
||||
}
|
||||
|
||||
g_sf_global_vars.max_pkg_size = iniGetByteCorrectValueEx(ini_ctx,
|
||||
max_pkg_size_item_nm, SF_DEF_MAX_PACKAGE_SIZE, 1, 8192,
|
||||
SF_MAX_NETWORK_BUFF_SIZE, true);
|
||||
|
|
@ -285,8 +294,8 @@ int sf_load_global_base_path(IniFullContext *ini_ctx)
|
|||
|
||||
int sf_load_global_config_ex(const char *server_name,
|
||||
IniFullContext *ini_ctx, const bool load_network_params,
|
||||
const char *max_pkg_size_item_nm, const int task_buffer_extra_size,
|
||||
const bool need_set_run_by)
|
||||
const char *max_pkg_size_item_nm, const int fixed_buff_size,
|
||||
const int task_buffer_extra_size, const bool need_set_run_by)
|
||||
{
|
||||
int result;
|
||||
const char *old_section_name;
|
||||
|
|
@ -303,7 +312,7 @@ int sf_load_global_config_ex(const char *server_name,
|
|||
tcp_set_quick_ack(g_sf_global_vars.tcp_quick_ack);
|
||||
if (load_network_params) {
|
||||
if ((result=load_network_parameters(ini_ctx, max_pkg_size_item_nm,
|
||||
task_buffer_extra_size)) != 0)
|
||||
fixed_buff_size, task_buffer_extra_size)) != 0)
|
||||
{
|
||||
return result;
|
||||
}
|
||||
|
|
@ -401,11 +410,12 @@ int sf_load_global_config_ex(const char *server_name,
|
|||
}
|
||||
|
||||
int sf_load_config_ex(const char *server_name, SFContextIniConfig *config,
|
||||
const int task_buffer_extra_size, const bool need_set_run_by)
|
||||
const int fixed_buff_size, const int task_buffer_extra_size,
|
||||
const bool need_set_run_by)
|
||||
{
|
||||
int result;
|
||||
if ((result=sf_load_global_config_ex(server_name, &config->ini_ctx,
|
||||
true, config->max_pkg_size_item_name,
|
||||
true, config->max_pkg_size_item_name, fixed_buff_size,
|
||||
task_buffer_extra_size, need_set_run_by)) != 0)
|
||||
{
|
||||
return result;
|
||||
|
|
@ -609,28 +619,16 @@ int sf_alloc_rdma_pd(SFContext *sf_context,
|
|||
FCAddressPtrArray *address_array)
|
||||
{
|
||||
SFNetworkHandler *handler;
|
||||
char *ip_addrs[FC_MAX_SERVER_IP_COUNT];
|
||||
char **ip_addr;
|
||||
FCAddressInfo **addr;
|
||||
FCAddressInfo **end;
|
||||
int result;
|
||||
|
||||
handler = sf_context->handlers + SF_RDMACM_NETWORK_HANDLER_INDEX;
|
||||
if (!handler->enabled) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
end = address_array->addrs + address_array->count;
|
||||
for (addr=address_array->addrs, ip_addr=ip_addrs; addr<end; addr++) {
|
||||
*ip_addr = (*addr)->conn.ip_addr;
|
||||
}
|
||||
|
||||
if ((handler->pd=handler->alloc_pd((const char **)ip_addrs,
|
||||
address_array->count)) != NULL)
|
||||
{
|
||||
return 0;
|
||||
} else {
|
||||
return ENODEV;
|
||||
}
|
||||
handler->pd = fc_alloc_rdma_pd(handler->alloc_pd,
|
||||
address_array, &result);
|
||||
return result;
|
||||
}
|
||||
|
||||
void sf_context_config_to_string(const SFContext *sf_context,
|
||||
|
|
|
|||
|
|
@ -174,29 +174,33 @@ extern SFContext g_sf_context;
|
|||
|
||||
int sf_load_global_config_ex(const char *server_name,
|
||||
IniFullContext *ini_ctx, const bool load_network_params,
|
||||
const char *max_pkg_size_item_nm, const int task_buffer_extra_size,
|
||||
const bool need_set_run_by);
|
||||
const char *max_pkg_size_item_nm, const int fixed_buff_size,
|
||||
const int task_buffer_extra_size, const bool need_set_run_by);
|
||||
|
||||
static inline int sf_load_global_config(const char *server_name,
|
||||
IniFullContext *ini_ctx)
|
||||
{
|
||||
const bool load_network_params = true;
|
||||
const char *max_pkg_size_item_nm = "max_pkg_size";
|
||||
const int fixed_buff_size = 0;
|
||||
const int task_buffer_extra_size = 0;
|
||||
const bool need_set_run_by = true;
|
||||
|
||||
return sf_load_global_config_ex(server_name, ini_ctx, load_network_params,
|
||||
max_pkg_size_item_nm, task_buffer_extra_size, need_set_run_by);
|
||||
max_pkg_size_item_nm, fixed_buff_size, task_buffer_extra_size,
|
||||
need_set_run_by);
|
||||
}
|
||||
|
||||
int sf_load_config_ex(const char *server_name, SFContextIniConfig *config,
|
||||
const int task_buffer_extra_size, const bool need_set_run_by);
|
||||
const int fixed_buff_size, const int task_buffer_extra_size,
|
||||
const bool need_set_run_by);
|
||||
|
||||
static inline int sf_load_config(const char *server_name,
|
||||
const FCCommunicationType comm_type,
|
||||
const char *filename, IniContext *pIniContext,
|
||||
const char *section_name, const int default_inner_port,
|
||||
const int default_outer_port, const int task_buffer_extra_size)
|
||||
const int default_outer_port, const int fixed_buff_size,
|
||||
const int task_buffer_extra_size)
|
||||
{
|
||||
const bool need_set_run_by = true;
|
||||
SFContextIniConfig config;
|
||||
|
|
@ -204,7 +208,7 @@ static inline int sf_load_config(const char *server_name,
|
|||
SF_SET_CONTEXT_INI_CONFIG(config, comm_type, filename, pIniContext,
|
||||
section_name, default_inner_port, default_outer_port,
|
||||
DEFAULT_WORK_THREADS);
|
||||
return sf_load_config_ex(server_name, &config,
|
||||
return sf_load_config_ex(server_name, &config, fixed_buff_size,
|
||||
task_buffer_extra_size, need_set_run_by);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -65,8 +65,7 @@ struct sf_listener;
|
|||
typedef int (*sf_get_connection_size_callback)();
|
||||
typedef int (*sf_init_connection_callback)(
|
||||
struct fast_task_info *task, void *arg);
|
||||
typedef struct ibv_pd *(*sf_alloc_pd_callback)(
|
||||
const char **ip_addrs, const int count);
|
||||
#define sf_alloc_pd_callback fc_alloc_pd_callback
|
||||
|
||||
typedef int (*sf_create_server_callback)(struct sf_listener
|
||||
*listener, int af, const char *bind_addr);
|
||||
|
|
|
|||
Loading…
Reference in New Issue