From cd3229f43044f1ea96e9e6ea47f3b99f821bbec1 Mon Sep 17 00:00:00 2001 From: Willem Melching Date: Tue, 17 Mar 2020 13:40:07 -0700 Subject: [PATCH 1/2] camerad zmq_poll, also recover from EAGAIN --- selfdrive/camerad/cameras/camera_qcom.c | 2 +- selfdrive/camerad/main.cc | 7 ++----- selfdrive/ui/ui.cc | 2 +- 3 files changed, 4 insertions(+), 7 deletions(-) diff --git a/selfdrive/camerad/cameras/camera_qcom.c b/selfdrive/camerad/cameras/camera_qcom.c index 6cef28f21..1d1396d7b 100644 --- a/selfdrive/camerad/cameras/camera_qcom.c +++ b/selfdrive/camerad/cameras/camera_qcom.c @@ -2117,7 +2117,7 @@ void cameras_run(DualCameraState *s) { int ret = poll(fds, ARRAYSIZE(fds), 1000); if (ret <= 0) { - if (errno == EINTR) continue; + if (errno == EINTR || errno == EAGAIN) continue; LOGE("poll failed (%d - %d)", ret, errno); break; } diff --git a/selfdrive/camerad/main.cc b/selfdrive/camerad/main.cc index 304990ca9..156116817 100644 --- a/selfdrive/camerad/main.cc +++ b/selfdrive/camerad/main.cc @@ -604,10 +604,7 @@ void* visionserver_client_thread(void* arg) { } int ret = zmq_poll(polls, num_polls, -1); if (ret < 0) { - if (errno == EINTR){ - LOGW("poll EINTR"); - continue; - } + if (errno == EINTR || errno == EAGAIN) continue; LOGE("poll failed (%d - %d)", ret, errno); break; } @@ -799,7 +796,7 @@ void* visionserver_thread(void* arg) { int ret = zmq_poll(polls, ARRAYSIZE(polls), -1); if (ret < 0) { - if (errno == EINTR) continue; + if (errno == EINTR || errno == EAGAIN) continue; LOGE("poll failed (%d - %d)", ret, errno); break; } diff --git a/selfdrive/ui/ui.cc b/selfdrive/ui/ui.cc index a87ca3003..12a469a4a 100644 --- a/selfdrive/ui/ui.cc +++ b/selfdrive/ui/ui.cc @@ -598,7 +598,7 @@ static void ui_update(UIState *s) { int ret = zmq_poll(polls, 1, 1000); #endif if (ret < 0) { - if (errno == EINTR) continue; + if (errno == EINTR || errno == EAGAIN) continue; LOGE("poll failed (%d - %d)", ret, errno); close(s->ipc_fd); From 50e8fda0c22d0954e04b71d257a7c0448e179a0c Mon Sep 17 00:00:00 2001 From: Willem Melching Date: Tue, 17 Mar 2020 16:35:39 -0700 Subject: [PATCH 2/2] Fix kernel logging in logcatd, fixes #957 --- selfdrive/logcatd/logcatd.cc | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/selfdrive/logcatd/logcatd.cc b/selfdrive/logcatd/logcatd.cc index 4baa97677..81fafb71d 100644 --- a/selfdrive/logcatd/logcatd.cc +++ b/selfdrive/logcatd/logcatd.cc @@ -25,8 +25,8 @@ int main() { assert(system_logger); struct logger *crash_logger = android_logger_open(logger_list, LOG_ID_CRASH); assert(crash_logger); -// struct logger *kernel_logger = android_logger_open(logger_list, LOG_ID_KERNEL); -// assert(kernel_logger); + struct logger *kernel_logger = android_logger_open(logger_list, (log_id_t)5); // LOG_ID_KERNEL + assert(kernel_logger); Context * c = Context::create(); PubSocket * androidLog = PubSocket::create(c, "androidLog");