diff options
| author | 2019-08-16 03:08:34 -0700 | |
|---|---|---|
| committer | 2019-08-16 03:08:34 -0700 | |
| commit | 2a14748888e7f709be6ba2112ab36a7acd582e9b (patch) | |
| tree | 0dcd6c0d21acc341543bc6a97438138f2476686c | |
| parent | cc3e2f8a6ed0c36400f27bcc8b536949d213c0c5 (diff) | |
| parent | 8385d699c9c237b7003b936ffc8c17cf9e3d3e09 (diff) | |
Merge "Allow duration of some commands to be logged."
am: 8385d699c9
Change-Id: I62ffaa184420ebc3b13366b18fb0f8daf66e9e2a
| -rw-r--r-- | cmds/dumpstate/dumpstate.cpp | 21 | ||||
| -rw-r--r-- | cmds/dumpstate/dumpstate.h | 7 |
2 files changed, 16 insertions, 12 deletions
diff --git a/cmds/dumpstate/dumpstate.cpp b/cmds/dumpstate/dumpstate.cpp index af9ce78c17..288fa0741d 100644 --- a/cmds/dumpstate/dumpstate.cpp +++ b/cmds/dumpstate/dumpstate.cpp @@ -118,8 +118,9 @@ static const int32_t WEIGHT_FILE = 5; // TODO: temporary variables and functions used during C++ refactoring static Dumpstate& ds = Dumpstate::GetInstance(); static int RunCommand(const std::string& title, const std::vector<std::string>& full_command, - const CommandOptions& options = CommandOptions::DEFAULT) { - return ds.RunCommand(title, full_command, options); + const CommandOptions& options = CommandOptions::DEFAULT, + bool verbose_duration = false) { + return ds.RunCommand(title, full_command, options, verbose_duration); } // Reasonable value for max stats. @@ -898,17 +899,17 @@ static void DoLogcat() { RunCommand( "EVENT LOG", {"logcat", "-b", "events", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, - CommandOptions::WithTimeoutInMs(timeout_ms).Build()); + CommandOptions::WithTimeoutInMs(timeout_ms).Build(), true /* verbose_duration */); timeout_ms = logcat_timeout({"stats"}); RunCommand( "STATS LOG", {"logcat", "-b", "stats", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, - CommandOptions::WithTimeoutInMs(timeout_ms).Build()); + CommandOptions::WithTimeoutInMs(timeout_ms).Build(), true /* verbose_duration */); timeout_ms = logcat_timeout({"radio"}); RunCommand( "RADIO LOG", {"logcat", "-b", "radio", "-v", "threadtime", "-v", "printable", "-v", "uid", "-d", "*:v"}, - CommandOptions::WithTimeoutInMs(timeout_ms).Build()); + CommandOptions::WithTimeoutInMs(timeout_ms).Build(), true /* verbose_duration */); RunCommand("LOG STATISTICS", {"logcat", "-b", "all", "-S"}); @@ -2851,8 +2852,8 @@ Dumpstate& Dumpstate::GetInstance() { return singleton_; } -DurationReporter::DurationReporter(const std::string& title, bool logcat_only) - : title_(title), logcat_only_(logcat_only) { +DurationReporter::DurationReporter(const std::string& title, bool logcat_only, bool verbose) + : title_(title), logcat_only_(logcat_only), verbose_(verbose) { if (!title_.empty()) { started_ = Nanotime(); } @@ -2861,7 +2862,7 @@ DurationReporter::DurationReporter(const std::string& title, bool logcat_only) DurationReporter::~DurationReporter() { if (!title_.empty()) { float elapsed = (float)(Nanotime() - started_) / NANOS_PER_SEC; - if (elapsed < .5f) { + if (elapsed < .5f && !verbose_) { return; } MYLOGD("Duration of '%s': %.2fs\n", title_.c_str(), elapsed); @@ -3454,8 +3455,8 @@ int dump_file_from_fd(const char *title, const char *path, int fd) { } int Dumpstate::RunCommand(const std::string& title, const std::vector<std::string>& full_command, - const CommandOptions& options) { - DurationReporter duration_reporter(title); + const CommandOptions& options, bool verbose_duration) { + DurationReporter duration_reporter(title, false /* logcat_only */, verbose_duration); int status = RunCommandToFd(STDOUT_FILENO, title, full_command, options); diff --git a/cmds/dumpstate/dumpstate.h b/cmds/dumpstate/dumpstate.h index f137fc927a..c0596410e5 100644 --- a/cmds/dumpstate/dumpstate.h +++ b/cmds/dumpstate/dumpstate.h @@ -73,13 +73,15 @@ extern "C" { */ class DurationReporter { public: - explicit DurationReporter(const std::string& title, bool logcat_only = false); + explicit DurationReporter(const std::string& title, bool logcat_only = false, + bool verbose = false); ~DurationReporter(); private: std::string title_; bool logcat_only_; + bool verbose_; uint64_t started_; DISALLOW_COPY_AND_ASSIGN(DurationReporter); @@ -224,7 +226,8 @@ class Dumpstate { */ int RunCommand(const std::string& title, const std::vector<std::string>& fullCommand, const android::os::dumpstate::CommandOptions& options = - android::os::dumpstate::CommandOptions::DEFAULT); + android::os::dumpstate::CommandOptions::DEFAULT, + bool verbose_duration = false); /* * Runs `dumpsys` with the given arguments, automatically setting its timeout |