check sf_context->use_io_uring more
parent
c4af33a497
commit
a52cc2d5d4
|
|
@ -770,7 +770,7 @@ int sf_load_context_from_config_ex(SFContext *sf_context,
|
||||||
|
|
||||||
#if IOEVENT_USE_URING
|
#if IOEVENT_USE_URING
|
||||||
sf_context->use_io_uring = (config->comm_type == fc_comm_type_sock);
|
sf_context->use_io_uring = (config->comm_type == fc_comm_type_sock);
|
||||||
sf_context->use_send_zc = use_send_zc;
|
sf_context->use_send_zc = sf_context->use_io_uring ? use_send_zc : false;
|
||||||
#else
|
#else
|
||||||
sf_context->use_io_uring = false;
|
sf_context->use_io_uring = false;
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
|
|
@ -189,7 +189,15 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name,
|
||||||
|
|
||||||
max_entries = (sf_context->net_buffer_cfg.max_connections +
|
max_entries = (sf_context->net_buffer_cfg.max_connections +
|
||||||
sf_context->work_threads - 1) / sf_context->work_threads;
|
sf_context->work_threads - 1) / sf_context->work_threads;
|
||||||
if (strcmp(sf_context->name, "service") == 0) {
|
if (strcmp(sf_context->name, "cluster") == 0 ||
|
||||||
|
strcmp(sf_context->name, "replica") == 0)
|
||||||
|
{
|
||||||
|
if (max_entries < 1024) {
|
||||||
|
max_entries += 8;
|
||||||
|
} else {
|
||||||
|
max_entries = 1024;
|
||||||
|
}
|
||||||
|
} else {
|
||||||
if (max_entries < 4 * 1024) {
|
if (max_entries < 4 * 1024) {
|
||||||
max_entries = max_entries * 2;
|
max_entries = max_entries * 2;
|
||||||
} else if (max_entries < 8 * 1024) {
|
} else if (max_entries < 8 * 1024) {
|
||||||
|
|
@ -198,23 +206,19 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name,
|
||||||
max_entries = (max_entries * 5) / 4;
|
max_entries = (max_entries * 5) / 4;
|
||||||
} else if (max_entries < 32 * 1024) {
|
} else if (max_entries < 32 * 1024) {
|
||||||
max_entries = (max_entries * 6) / 5;
|
max_entries = (max_entries * 6) / 5;
|
||||||
#if IOEVENT_USE_URING
|
|
||||||
if (max_entries > 32 * 1024) {
|
|
||||||
max_entries = 32 * 1024;
|
|
||||||
}
|
|
||||||
#else
|
|
||||||
} else if (max_entries < 64 * 1024) {
|
} else if (max_entries < 64 * 1024) {
|
||||||
max_entries = (max_entries * 11) / 10;
|
max_entries = (max_entries * 11) / 10;
|
||||||
} else if (max_entries < 128 * 1024) {
|
} else if (max_entries < 128 * 1024) {
|
||||||
max_entries = (max_entries * 21) / 20;
|
max_entries = (max_entries * 21) / 20;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if IOEVENT_USE_URING
|
||||||
|
if (sf_context->use_io_uring) {
|
||||||
|
if (max_entries > 32 * 1024) {
|
||||||
|
max_entries = 32 * 1024;
|
||||||
|
}
|
||||||
|
}
|
||||||
#endif
|
#endif
|
||||||
}
|
|
||||||
} else {
|
|
||||||
if (max_entries < 1024) {
|
|
||||||
max_entries += 8;
|
|
||||||
} else {
|
|
||||||
max_entries = 1024;
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
|
|
||||||
g_current_time = time(NULL);
|
g_current_time = time(NULL);
|
||||||
|
|
@ -247,18 +251,23 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name,
|
||||||
{
|
{
|
||||||
char prompt[256];
|
char prompt[256];
|
||||||
#if IOEVENT_USE_URING
|
#if IOEVENT_USE_URING
|
||||||
if (result == EPERM) {
|
if (sf_context->use_io_uring) {
|
||||||
strcpy(prompt, " make sure kernel.io_uring_disabled set to 0");
|
if (result == EPERM) {
|
||||||
} else if (result == EINVAL) {
|
strcpy(prompt, " make sure kernel."
|
||||||
sprintf(prompt, " maybe max_connections: %d is too large"
|
"io_uring_disabled set to 0");
|
||||||
" or [%s]'s work_threads: %d is too small",
|
} else if (result == EINVAL) {
|
||||||
sf_context->net_buffer_cfg.max_connections,
|
sprintf(prompt, " maybe max_connections: %d is too large"
|
||||||
sf_context->name, sf_context->work_threads);
|
" or [%s]'s work_threads: %d is too small",
|
||||||
|
sf_context->net_buffer_cfg.max_connections,
|
||||||
|
sf_context->name, sf_context->work_threads);
|
||||||
|
} else {
|
||||||
|
*prompt = '\0';
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
|
#endif
|
||||||
*prompt = '\0';
|
*prompt = '\0';
|
||||||
|
#if IOEVENT_USE_URING
|
||||||
}
|
}
|
||||||
#else
|
|
||||||
*prompt = '\0';
|
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
logError("file: "__FILE__", line: %d, "
|
logError("file: "__FILE__", line: %d, "
|
||||||
|
|
@ -268,7 +277,7 @@ int sf_service_init_ex2(SFContext *sf_context, const char *name,
|
||||||
}
|
}
|
||||||
|
|
||||||
#if IOEVENT_USE_URING
|
#if IOEVENT_USE_URING
|
||||||
if (send_done_callback != NULL) {
|
if (sf_context->use_io_uring && send_done_callback != NULL) {
|
||||||
ioevent_set_send_zc_done_notify(&thread_data->ev_puller, true);
|
ioevent_set_send_zc_done_notify(&thread_data->ev_puller, true);
|
||||||
}
|
}
|
||||||
#endif
|
#endif
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue