Loading cmds/dumpstate/dumpstate.cpp +21 −24 Original line number Original line Diff line number Diff line Loading @@ -657,12 +657,18 @@ static int dump_stat_from_fd(const char *title __unused, const char *path, int f return 0; return 0; } } /* timeout in ms */ static const long MINIMUM_LOGCAT_TIMEOUT_MS = 50000; static unsigned long logcat_timeout(const char *name) { log_id_t id = android_name_to_log_id(name); /* timeout in ms to read a list of buffers */ static unsigned long logcat_timeout(const std::vector<std::string>& buffers) { unsigned long timeout_ms = 0; for (const auto& buffer : buffers) { log_id_t id = android_name_to_log_id(buffer.c_str()); unsigned long property_size = __android_logger_get_buffer_size(id); unsigned long property_size = __android_logger_get_buffer_size(id); /* Engineering margin is ten-fold our guess */ /* Engineering margin is ten-fold our guess */ return 10 * (property_size + worst_write_perf) / worst_write_perf; timeout_ms += 10 * (property_size + worst_write_perf) / worst_write_perf; } return timeout_ms > MINIMUM_LOGCAT_TIMEOUT_MS ? timeout_ms : MINIMUM_LOGCAT_TIMEOUT_MS; } } void Dumpstate::PrintHeader() const { void Dumpstate::PrintHeader() const { Loading Loading @@ -831,13 +837,8 @@ static void DoKmsg() { } } } } static const long MINIMUM_LOGCAT_TIMEOUT_MS = 50000; static void DoKernelLogcat() { static void DoKernelLogcat() { unsigned long timeout_ms = logcat_timeout("kernel"); unsigned long timeout_ms = logcat_timeout({"kernel"}); if (timeout_ms < MINIMUM_LOGCAT_TIMEOUT_MS) { timeout_ms = MINIMUM_LOGCAT_TIMEOUT_MS; } RunCommand( RunCommand( "KERNEL LOG", "KERNEL LOG", {"logcat", "-b", "kernel", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, {"logcat", "-b", "kernel", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, Loading @@ -848,25 +849,21 @@ static void DoLogcat() { unsigned long timeout_ms; unsigned long timeout_ms; // DumpFile("EVENT LOG TAGS", "/etc/event-log-tags"); // DumpFile("EVENT LOG TAGS", "/etc/event-log-tags"); // calculate timeout // calculate timeout timeout_ms = logcat_timeout("main") + logcat_timeout("system") + logcat_timeout("crash"); timeout_ms = logcat_timeout({"main", "system", "crash"}); if (timeout_ms < MINIMUM_LOGCAT_TIMEOUT_MS) { timeout_ms = MINIMUM_LOGCAT_TIMEOUT_MS; } RunCommand("SYSTEM LOG", RunCommand("SYSTEM LOG", {"logcat", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, {"logcat", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, CommandOptions::WithTimeoutInMs(timeout_ms).Build()); CommandOptions::WithTimeoutInMs(timeout_ms).Build()); timeout_ms = logcat_timeout("events"); timeout_ms = logcat_timeout({"events"}); if (timeout_ms < MINIMUM_LOGCAT_TIMEOUT_MS) { timeout_ms = MINIMUM_LOGCAT_TIMEOUT_MS; } RunCommand( RunCommand( "EVENT LOG", "EVENT LOG", {"logcat", "-b", "events", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, {"logcat", "-b", "events", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, CommandOptions::WithTimeoutInMs(timeout_ms).Build()); CommandOptions::WithTimeoutInMs(timeout_ms).Build()); timeout_ms = logcat_timeout("radio"); timeout_ms = logcat_timeout({"stats"}); if (timeout_ms < MINIMUM_LOGCAT_TIMEOUT_MS) { RunCommand( timeout_ms = MINIMUM_LOGCAT_TIMEOUT_MS; "STATS LOG", } {"logcat", "-b", "stats", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, CommandOptions::WithTimeoutInMs(timeout_ms).Build()); timeout_ms = logcat_timeout({"radio"}); RunCommand( RunCommand( "RADIO LOG", "RADIO LOG", {"logcat", "-b", "radio", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, {"logcat", "-b", "radio", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, Loading Loading
cmds/dumpstate/dumpstate.cpp +21 −24 Original line number Original line Diff line number Diff line Loading @@ -657,12 +657,18 @@ static int dump_stat_from_fd(const char *title __unused, const char *path, int f return 0; return 0; } } /* timeout in ms */ static const long MINIMUM_LOGCAT_TIMEOUT_MS = 50000; static unsigned long logcat_timeout(const char *name) { log_id_t id = android_name_to_log_id(name); /* timeout in ms to read a list of buffers */ static unsigned long logcat_timeout(const std::vector<std::string>& buffers) { unsigned long timeout_ms = 0; for (const auto& buffer : buffers) { log_id_t id = android_name_to_log_id(buffer.c_str()); unsigned long property_size = __android_logger_get_buffer_size(id); unsigned long property_size = __android_logger_get_buffer_size(id); /* Engineering margin is ten-fold our guess */ /* Engineering margin is ten-fold our guess */ return 10 * (property_size + worst_write_perf) / worst_write_perf; timeout_ms += 10 * (property_size + worst_write_perf) / worst_write_perf; } return timeout_ms > MINIMUM_LOGCAT_TIMEOUT_MS ? timeout_ms : MINIMUM_LOGCAT_TIMEOUT_MS; } } void Dumpstate::PrintHeader() const { void Dumpstate::PrintHeader() const { Loading Loading @@ -831,13 +837,8 @@ static void DoKmsg() { } } } } static const long MINIMUM_LOGCAT_TIMEOUT_MS = 50000; static void DoKernelLogcat() { static void DoKernelLogcat() { unsigned long timeout_ms = logcat_timeout("kernel"); unsigned long timeout_ms = logcat_timeout({"kernel"}); if (timeout_ms < MINIMUM_LOGCAT_TIMEOUT_MS) { timeout_ms = MINIMUM_LOGCAT_TIMEOUT_MS; } RunCommand( RunCommand( "KERNEL LOG", "KERNEL LOG", {"logcat", "-b", "kernel", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, {"logcat", "-b", "kernel", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, Loading @@ -848,25 +849,21 @@ static void DoLogcat() { unsigned long timeout_ms; unsigned long timeout_ms; // DumpFile("EVENT LOG TAGS", "/etc/event-log-tags"); // DumpFile("EVENT LOG TAGS", "/etc/event-log-tags"); // calculate timeout // calculate timeout timeout_ms = logcat_timeout("main") + logcat_timeout("system") + logcat_timeout("crash"); timeout_ms = logcat_timeout({"main", "system", "crash"}); if (timeout_ms < MINIMUM_LOGCAT_TIMEOUT_MS) { timeout_ms = MINIMUM_LOGCAT_TIMEOUT_MS; } RunCommand("SYSTEM LOG", RunCommand("SYSTEM LOG", {"logcat", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, {"logcat", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, CommandOptions::WithTimeoutInMs(timeout_ms).Build()); CommandOptions::WithTimeoutInMs(timeout_ms).Build()); timeout_ms = logcat_timeout("events"); timeout_ms = logcat_timeout({"events"}); if (timeout_ms < MINIMUM_LOGCAT_TIMEOUT_MS) { timeout_ms = MINIMUM_LOGCAT_TIMEOUT_MS; } RunCommand( RunCommand( "EVENT LOG", "EVENT LOG", {"logcat", "-b", "events", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, {"logcat", "-b", "events", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, CommandOptions::WithTimeoutInMs(timeout_ms).Build()); CommandOptions::WithTimeoutInMs(timeout_ms).Build()); timeout_ms = logcat_timeout("radio"); timeout_ms = logcat_timeout({"stats"}); if (timeout_ms < MINIMUM_LOGCAT_TIMEOUT_MS) { RunCommand( timeout_ms = MINIMUM_LOGCAT_TIMEOUT_MS; "STATS LOG", } {"logcat", "-b", "stats", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, CommandOptions::WithTimeoutInMs(timeout_ms).Build()); timeout_ms = logcat_timeout({"radio"}); RunCommand( RunCommand( "RADIO LOG", "RADIO LOG", {"logcat", "-b", "radio", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, {"logcat", "-b", "radio", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, Loading