From f6e0279b6425bf257292c075c5eec1e4ba4b640e Mon Sep 17 00:00:00 2001 From: "Dmitriy A. Gerasimov" <dmitriy.gerasimov@demlabs.net> Date: Sat, 3 Oct 2020 17:25:24 +0700 Subject: [PATCH] [*] Fixed for EPOLL --- CMakeLists.txt | 2 +- dap-sdk/net/core/dap_proc_thread.c | 8 ++++---- dap-sdk/net/core/dap_worker.c | 6 +++--- dap-sdk/net/core/include/dap_events_socket.h | 2 ++ 4 files changed, 10 insertions(+), 8 deletions(-) diff --git a/CMakeLists.txt b/CMakeLists.txt index a10ddcdb4c..e40ff7e069 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -2,7 +2,7 @@ project(cellframe-sdk C) cmake_minimum_required(VERSION 2.8) set(CMAKE_C_STANDARD 11) -set(CELLFRAME_SDK_NATIVE_VERSION "2.5-25") +set(CELLFRAME_SDK_NATIVE_VERSION "2.5-26") add_definitions ("-DCELLFRAME_SDK_VERSION=\"${CELLFRAME_SDK_NATIVE_VERSION}\"") set(DAPSDK_MODULES "") diff --git a/dap-sdk/net/core/dap_proc_thread.c b/dap-sdk/net/core/dap_proc_thread.c index 203875d1d1..93c4ab15cc 100644 --- a/dap-sdk/net/core/dap_proc_thread.c +++ b/dap-sdk/net/core/dap_proc_thread.c @@ -161,11 +161,11 @@ static void * s_proc_thread_function(void * a_arg) l_thread->proc_event->_inheritor = l_thread; // we pass thread through it #ifdef DAP_EVENTS_CAPS_EPOLL - struct epoll_event l_epoll_events[DAP_MAX_EPOLL_EVENTS], l_ev; + struct epoll_event l_epoll_events[DAP_EVENTS_SOCKET_MAX], l_ev; memset(l_epoll_events, 0,sizeof (l_epoll_events)); // Create epoll ctl - l_thread->epoll_ctl = epoll_create( DAP_MAX_EPOLL_EVENTS ); + l_thread->epoll_ctl = epoll_create( DAP_EVENTS_SOCKET_MAX ); // add proc queue l_ev.events = l_thread->proc_queue->esocket->ev_base_flags; @@ -183,7 +183,7 @@ static void * s_proc_thread_function(void * a_arg) return NULL; } #elif defined(DAP_EVENTS_CAPS_POLL) - size_t l_poll_count_max = DAP_MAX_EVENTS_COUNT; + size_t l_poll_count_max = DAP_EVENTS_SOCKET_MAX; size_t l_poll_count = 0; bool l_poll_compress = false; struct pollfd * l_poll = DAP_NEW_Z_SIZE(struct pollfd,l_poll_count_max *sizeof (*l_poll)); @@ -214,7 +214,7 @@ static void * s_proc_thread_function(void * a_arg) #ifdef DAP_EVENTS_CAPS_EPOLL //log_it(L_DEBUG, "Epoll_wait call"); - int l_selected_sockets = epoll_wait(l_thread->epoll_ctl, l_epoll_events, DAP_MAX_EPOLL_EVENTS, -1); + int l_selected_sockets = epoll_wait(l_thread->epoll_ctl, l_epoll_events, DAP_EVENTS_SOCKET_MAX, -1); size_t l_sockets_max = l_selected_sockets; #elif defined (DAP_EVENTS_CAPS_POLL) int l_selected_sockets = poll(l_poll,l_poll_count,-1); diff --git a/dap-sdk/net/core/dap_worker.c b/dap-sdk/net/core/dap_worker.c index d740dcd794..690cb0c4ce 100644 --- a/dap-sdk/net/core/dap_worker.c +++ b/dap-sdk/net/core/dap_worker.c @@ -85,10 +85,10 @@ void *dap_worker_thread(void *arg) pthread_setschedparam(pthread_self(),SCHED_FIFO ,&l_shed_params); #ifdef DAP_EVENTS_CAPS_EPOLL - struct epoll_event l_epoll_events[ DAP_MAX_EPOLL_EVENTS]= {{0}}; + struct epoll_event l_epoll_events[ DAP_EVENTS_SOCKET_MAX]= {{0}}; log_it(L_INFO, "Worker #%d started with epoll fd %d and assigned to dedicated CPU unit", l_worker->id, l_worker->epoll_fd); #elif defined(DAP_EVENTS_CAPS_POLL) - l_worker->poll_count_max = _SC_PAGE_SIZE; + l_worker->poll_count_max = DAP_EVENTS_SOCKET_MAX; l_worker->poll = DAP_NEW_Z_SIZE(struct pollfd,l_worker->poll_count_max*sizeof (struct pollfd)); l_worker->poll_esocket = DAP_NEW_Z_SIZE(dap_events_socket_t*,l_worker->poll_count_max*sizeof (dap_events_socket_t*)); #else @@ -109,7 +109,7 @@ void *dap_worker_thread(void *arg) bool s_loop_is_active = true; while(s_loop_is_active) { #ifdef DAP_EVENTS_CAPS_EPOLL - int l_selected_sockets = epoll_wait(l_worker->epoll_fd, l_epoll_events, DAP_MAX_EPOLL_EVENTS, -1); + int l_selected_sockets = epoll_wait(l_worker->epoll_fd, l_epoll_events, DAP_EVENTS_SOCKET_MAX, -1); size_t l_sockets_max = l_selected_sockets; #elif defined(DAP_EVENTS_CAPS_POLL) int l_selected_sockets = poll(l_worker->poll, l_worker->poll_count, -1); diff --git a/dap-sdk/net/core/include/dap_events_socket.h b/dap-sdk/net/core/include/dap_events_socket.h index fb4e75b27c..9a21ef7e91 100644 --- a/dap-sdk/net/core/include/dap_events_socket.h +++ b/dap-sdk/net/core/include/dap_events_socket.h @@ -30,6 +30,8 @@ #include "dap_common.h" +#define DAP_EVENTS_SOCKET_MAX 8194 + // Caps for different platforms #if defined(DAP_OS_LINUX) #define DAP_EVENTS_CAPS_EPOLL -- GitLab