make android logcat exit cleanly (#19666)

* make android logcat exit cleanly

* clean up cpu usage script

Co-authored-by: Comma Device <device@comma.ai>
old-commit-hash: a399ec530d
commatwo_master
Adeeb Shihadeh 5 years ago committed by GitHub
parent d89bb8b29c
commit 3b2d64fddb
  1. 14
      selfdrive/debug/cpu_usage_stat.py
  2. 11
      selfdrive/logcatd/logcatd_android.cc

@ -24,23 +24,19 @@ import argparse
import re import re
from collections import defaultdict from collections import defaultdict
import selfdrive.manager as manager
# Do statistics every 5 seconds # Do statistics every 5 seconds
PRINT_INTERVAL = 5 PRINT_INTERVAL = 5
SLEEP_INTERVAL = 0.2 SLEEP_INTERVAL = 0.2
monitored_proc_names = [ monitored_proc_names = [
# openpilot procs # offroad APK
'controlsd', 'locationd', 'loggerd','plannerd',
'ubloxd', 'thermald', 'uploader', 'deleter', 'radard', 'logmessaged', 'tombstoned',
'logcatd', 'proclogd', 'boardd', 'pandad', './ui', 'ui', 'calibrationd', 'params_learner', 'modeld', 'dmonitoringd',
'dmonitoringmodeld', 'camerad', 'sensord', 'updated', 'gpsd', 'athena', 'locationd', 'paramsd',
'ai.comma.plus.offroad', 'ai.comma.plus.offroad',
# android procs # android procs
'SurfaceFlinger', 'sensors.qcom' 'SurfaceFlinger', 'sensors.qcom'
] ] + manager.car_started_processes + manager.persistent_processes
cpu_time_names = ['user', 'system', 'children_user', 'children_system'] cpu_time_names = ['user', 'system', 'children_user', 'children_system']
@ -48,9 +44,7 @@ timer = getattr(time, 'monotonic', time.time)
def get_arg_parser(): def get_arg_parser():
parser = argparse.ArgumentParser( parser = argparse.ArgumentParser(formatter_class=argparse.ArgumentDefaultsHelpFormatter)
description="Unlogger and UI",
formatter_class=argparse.ArgumentDefaultsHelpFormatter)
parser.add_argument("proc_names", nargs="?", default='', parser.add_argument("proc_names", nargs="?", default='',
help="Process names to be monitored, comma seperated") help="Process names to be monitored, comma seperated")

@ -1,7 +1,9 @@
#include <unistd.h>
#include <cstdio> #include <cstdio>
#include <cstdlib> #include <cstdlib>
#include <cassert> #include <cassert>
#include <csignal> #include <csignal>
#include <cerrno>
#include <android/log.h> #include <android/log.h>
//#include <log/log.h> //#include <log/log.h>
@ -23,7 +25,7 @@ int main() {
signal(SIGINT, (sighandler_t)set_do_exit); signal(SIGINT, (sighandler_t)set_do_exit);
signal(SIGTERM, (sighandler_t)set_do_exit); signal(SIGTERM, (sighandler_t)set_do_exit);
struct logger_list *logger_list = android_logger_list_alloc(ANDROID_LOG_RDONLY, 0, 0); struct logger_list *logger_list = android_logger_list_alloc(ANDROID_LOG_RDONLY | ANDROID_LOG_NONBLOCK, 0, 0);
assert(logger_list); assert(logger_list);
struct logger *main_logger = android_logger_open(logger_list, LOG_ID_MAIN); struct logger *main_logger = android_logger_open(logger_list, LOG_ID_MAIN);
assert(main_logger); assert(main_logger);
@ -40,7 +42,11 @@ int main() {
while (!do_exit) { while (!do_exit) {
log_msg log_msg; log_msg log_msg;
err = android_logger_list_read(logger_list, &log_msg); err = android_logger_list_read(logger_list, &log_msg);
if (err <= 0) {
if (err == -EAGAIN) {
usleep(500 * 1000);
continue;
} else if (err <= 0) {
break; break;
} }
@ -64,5 +70,6 @@ int main() {
} }
android_logger_list_close(logger_list); android_logger_list_close(logger_list);
android_logger_list_free(logger_list);
return 0; return 0;
} }

Loading…
Cancel
Save