In stress test case, memset may consume a lot of CPU because
vls_epoll_wait is called very frequently.
Type: improvement
Signed-off-by: wanghanlin <wanghanlin@corp.netease.com>
Change-Id: I9b4e1d6e1c4d7217cf0b2529d8efed792dea7b40
|| (s->flags & VCL_SESSION_F_HAS_RX_EVT))
break;
add_event = 1;
|| (s->flags & VCL_SESSION_F_HAS_RX_EVT))
break;
add_event = 1;
- events[*num_ev].events |= EPOLLIN;
+ events[*num_ev].events = EPOLLIN;
session_evt_data = s->vep.ev.data.u64;
s->flags |= VCL_SESSION_F_HAS_RX_EVT;
break;
session_evt_data = s->vep.ev.data.u64;
s->flags |= VCL_SESSION_F_HAS_RX_EVT;
break;
if (!(EPOLLOUT & session_events))
break;
add_event = 1;
if (!(EPOLLOUT & session_events))
break;
add_event = 1;
- events[*num_ev].events |= EPOLLOUT;
+ events[*num_ev].events = EPOLLOUT;
session_evt_data = s->vep.ev.data.u64;
svm_fifo_reset_has_deq_ntf (vcl_session_is_ct (s) ?
s->ct_tx_fifo : s->tx_fifo);
session_evt_data = s->vep.ev.data.u64;
svm_fifo_reset_has_deq_ntf (vcl_session_is_ct (s) ?
s->ct_tx_fifo : s->tx_fifo);
if (!(EPOLLIN & session_events))
break;
add_event = 1;
if (!(EPOLLIN & session_events))
break;
add_event = 1;
- events[*num_ev].events |= EPOLLIN;
+ events[*num_ev].events = EPOLLIN;
session_evt_data = s->vep.ev.data.u64;
break;
case SESSION_CTRL_EVT_CONNECTED:
session_evt_data = s->vep.ev.data.u64;
break;
case SESSION_CTRL_EVT_CONNECTED:
if (!(EPOLLOUT & session_events))
break;
add_event = 1;
if (!(EPOLLOUT & session_events))
break;
add_event = 1;
- events[*num_ev].events |= EPOLLOUT;
+ events[*num_ev].events = EPOLLOUT;
session_evt_data = s->vep.ev.data.u64;
if (s->session_state == VCL_STATE_DETACHED)
events[*num_ev].events |= EPOLLHUP;
session_evt_data = s->vep.ev.data.u64;
if (s->session_state == VCL_STATE_DETACHED)
events[*num_ev].events |= EPOLLHUP;
sid = s->session_index;
session_events = s->vep.ev.events;
add_event = 1;
sid = s->session_index;
session_events = s->vep.ev.events;
add_event = 1;
- events[*num_ev].events |= EPOLLHUP | EPOLLRDHUP;
+ events[*num_ev].events = EPOLLHUP | EPOLLRDHUP;
session_evt_data = s->vep.ev.data.u64;
break;
case SESSION_CTRL_EVT_RESET:
session_evt_data = s->vep.ev.data.u64;
break;
case SESSION_CTRL_EVT_RESET:
break;
session_events = s->vep.ev.events;
add_event = 1;
break;
session_events = s->vep.ev.events;
add_event = 1;
- events[*num_ev].events |= EPOLLHUP | EPOLLRDHUP;
+ events[*num_ev].events = EPOLLHUP | EPOLLRDHUP;
session_evt_data = s->vep.ev.data.u64;
break;
case SESSION_CTRL_EVT_UNLISTEN_REPLY:
session_evt_data = s->vep.ev.data.u64;
break;
case SESSION_CTRL_EVT_UNLISTEN_REPLY:
- memset (events, 0, sizeof (*events) * maxevents);
-
if (vec_len (wrk->unhandled_evts_vector))
{
for (i = 0; i < vec_len (wrk->unhandled_evts_vector); i++)
if (vec_len (wrk->unhandled_evts_vector))
{
for (i = 0; i < vec_len (wrk->unhandled_evts_vector); i++)