|
|
|
@ -680,7 +680,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker, |
|
|
|
|
pollset->begin_refs++; |
|
|
|
|
|
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, "PS:%p BEGIN_STARTS:%p", pollset, worker); |
|
|
|
|
gpr_log(GPR_DEBUG, "PS:%p BEGIN_STARTS:%p", pollset, worker); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (pollset->seen_inactive) { |
|
|
|
@ -699,7 +699,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker, |
|
|
|
|
gpr_mu_lock(&neighborhood->mu); |
|
|
|
|
gpr_mu_lock(&pollset->mu); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, "PS:%p BEGIN_REORG:%p kick_state=%s is_reassigning=%d", |
|
|
|
|
gpr_log(GPR_DEBUG, "PS:%p BEGIN_REORG:%p kick_state=%s is_reassigning=%d", |
|
|
|
|
pollset, worker, kick_state_string(worker->state), |
|
|
|
|
is_reassigning); |
|
|
|
|
} |
|
|
|
@ -751,7 +751,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker, |
|
|
|
|
gpr_cv_init(&worker->cv); |
|
|
|
|
while (worker->state == UNKICKED && !pollset->shutting_down) { |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, "PS:%p BEGIN_WAIT:%p kick_state=%s shutdown=%d", |
|
|
|
|
gpr_log(GPR_DEBUG, "PS:%p BEGIN_WAIT:%p kick_state=%s shutdown=%d", |
|
|
|
|
pollset, worker, kick_state_string(worker->state), |
|
|
|
|
pollset->shutting_down); |
|
|
|
|
} |
|
|
|
@ -768,7 +768,7 @@ static bool begin_worker(grpc_pollset* pollset, grpc_pollset_worker* worker, |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, |
|
|
|
|
gpr_log(GPR_DEBUG, |
|
|
|
|
"PS:%p BEGIN_DONE:%p kick_state=%s shutdown=%d " |
|
|
|
|
"kicked_without_poller: %d", |
|
|
|
|
pollset, worker, kick_state_string(worker->state), |
|
|
|
@ -1019,7 +1019,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
} |
|
|
|
|
tmp = gpr_strvec_flatten(&log, nullptr); |
|
|
|
|
gpr_strvec_destroy(&log); |
|
|
|
|
gpr_log(GPR_ERROR, "%s", tmp); |
|
|
|
|
gpr_log(GPR_DEBUG, "%s", tmp); |
|
|
|
|
gpr_free(tmp); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
@ -1030,7 +1030,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICKED_WITHOUT_POLLER(); |
|
|
|
|
pollset->kicked_without_poller = true; |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. kicked_without_poller"); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. kicked_without_poller"); |
|
|
|
|
} |
|
|
|
|
goto done; |
|
|
|
|
} |
|
|
|
@ -1038,14 +1038,14 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
if (root_worker->state == KICKED) { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICKED_AGAIN(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. already kicked %p", root_worker); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. already kicked %p", root_worker); |
|
|
|
|
} |
|
|
|
|
SET_KICK_STATE(root_worker, KICKED); |
|
|
|
|
goto done; |
|
|
|
|
} else if (next_worker->state == KICKED) { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICKED_AGAIN(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. already kicked %p", next_worker); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. already kicked %p", next_worker); |
|
|
|
|
} |
|
|
|
|
SET_KICK_STATE(next_worker, KICKED); |
|
|
|
|
goto done; |
|
|
|
@ -1056,7 +1056,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
&g_active_poller)) { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. kicked %p", root_worker); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. kicked %p", root_worker); |
|
|
|
|
} |
|
|
|
|
SET_KICK_STATE(root_worker, KICKED); |
|
|
|
|
ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd); |
|
|
|
@ -1064,7 +1064,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
} else if (next_worker->state == UNKICKED) { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. kicked %p", next_worker); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. kicked %p", next_worker); |
|
|
|
|
} |
|
|
|
|
GPR_ASSERT(next_worker->initialized_cv); |
|
|
|
|
SET_KICK_STATE(next_worker, KICKED); |
|
|
|
@ -1074,7 +1074,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
if (root_worker->state != DESIGNATED_POLLER) { |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log( |
|
|
|
|
GPR_ERROR, |
|
|
|
|
GPR_DEBUG, |
|
|
|
|
" .. kicked root non-poller %p (initialized_cv=%d) (poller=%p)", |
|
|
|
|
root_worker, root_worker->initialized_cv, next_worker); |
|
|
|
|
} |
|
|
|
@ -1087,7 +1087,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
} else { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. non-root poller %p (root=%p)", next_worker, |
|
|
|
|
gpr_log(GPR_DEBUG, " .. non-root poller %p (root=%p)", next_worker, |
|
|
|
|
root_worker); |
|
|
|
|
} |
|
|
|
|
SET_KICK_STATE(next_worker, KICKED); |
|
|
|
@ -1103,7 +1103,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
} else { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. kicked while waking up"); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. kicked while waking up"); |
|
|
|
|
} |
|
|
|
|
goto done; |
|
|
|
|
} |
|
|
|
@ -1113,14 +1113,14 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
|
|
|
|
|
if (specific_worker->state == KICKED) { |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. specific worker already kicked"); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. specific worker already kicked"); |
|
|
|
|
} |
|
|
|
|
goto done; |
|
|
|
|
} else if (gpr_tls_get(&g_current_thread_worker) == |
|
|
|
|
(intptr_t)specific_worker) { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICK_OWN_THREAD(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. mark %p kicked", specific_worker); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. mark %p kicked", specific_worker); |
|
|
|
|
} |
|
|
|
|
SET_KICK_STATE(specific_worker, KICKED); |
|
|
|
|
goto done; |
|
|
|
@ -1128,7 +1128,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
(grpc_pollset_worker*)gpr_atm_no_barrier_load(&g_active_poller)) { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_FD(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. kick active poller"); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. kick active poller"); |
|
|
|
|
} |
|
|
|
|
SET_KICK_STATE(specific_worker, KICKED); |
|
|
|
|
ret_err = grpc_wakeup_fd_wakeup(&global_wakeup_fd); |
|
|
|
@ -1136,7 +1136,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
} else if (specific_worker->initialized_cv) { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICK_WAKEUP_CV(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. kick waiting worker"); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. kick waiting worker"); |
|
|
|
|
} |
|
|
|
|
SET_KICK_STATE(specific_worker, KICKED); |
|
|
|
|
gpr_cv_signal(&specific_worker->cv); |
|
|
|
@ -1144,7 +1144,7 @@ static grpc_error* pollset_kick(grpc_pollset* pollset, |
|
|
|
|
} else { |
|
|
|
|
GRPC_STATS_INC_POLLSET_KICKED_AGAIN(); |
|
|
|
|
if (grpc_polling_trace.enabled()) { |
|
|
|
|
gpr_log(GPR_ERROR, " .. kick non-waiting worker"); |
|
|
|
|
gpr_log(GPR_DEBUG, " .. kick non-waiting worker"); |
|
|
|
|
} |
|
|
|
|
SET_KICK_STATE(specific_worker, KICKED); |
|
|
|
|
goto done; |
|
|
|
|