diff options
author | Adam Shih <adamshih@google.com> | 2022-10-11 15:36:26 +0800 |
---|---|---|
committer | Adam Shih <adamshih@google.com> | 2022-10-11 15:36:26 +0800 |
commit | ee779b9ac8d171a7129985e632cb90bc3c0e9d1b (patch) | |
tree | ae5f06b31a7bd347ccf874304570b8a3291edbbd /aoc/dump_aoc.cpp | |
parent | 763eae3289211614f9f4164ac24697169e67d543 (diff) |
move aoc dump to gs-common
Bug: 248426917
Test: adb bugreport
Change-Id: I29fea8752011959b5d0eb50ed93c6e8eed66f9ee
Diffstat (limited to 'aoc/dump_aoc.cpp')
-rw-r--r-- | aoc/dump_aoc.cpp | 61 |
1 files changed, 61 insertions, 0 deletions
diff --git a/aoc/dump_aoc.cpp b/aoc/dump_aoc.cpp new file mode 100644 index 0000000..a3e0088 --- /dev/null +++ b/aoc/dump_aoc.cpp @@ -0,0 +1,61 @@ +/* + * Copyright 2022 The Android Open Source Project + * + * Licensed under the Apache License, Version 2.0 (the "License"); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an "AS IS" BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ +#include <stdio.h> +#include <string> +#include <android-base/file.h> +#include <fstream> +#include <iostream> + +// Format title and content output. +void dumpFileContent(const char* title, const char* file_path) { + std::string content; + printf("------ %s (%s) ------\n", title, file_path); + if (android::base::ReadFileToString(file_path, &content)) { + printf("%s\n", content.c_str()); + } else { + printf("Unable to read %s\n", file_path); + } + return; +} + +void command(const char* title, const char* cmd){ + printf("------ %s (%s) ------\n", title, cmd); + system(cmd); + return; +} + +// Dump Aoc. +int main() { + setbuf(stdout, NULL); + dumpFileContent("AoC Service Status", "/sys/devices/platform/19000000.aoc/services"); + dumpFileContent("AoC Restarts", "/sys/devices/platform/19000000.aoc/restart_count"); + dumpFileContent("AoC Coredumps", "/sys/devices/platform/19000000.aoc/coredump_count"); + dumpFileContent("AoC ring buf wake", "/sys/devices/platform/19000000.aoc/control/ring_buffer_wakeup"); + dumpFileContent("AoC host ipc wake", "/sys/devices/platform/19000000.aoc/control/host_ipc_wakeup"); + dumpFileContent("AoC usf wake", "/sys/devices/platform/19000000.aoc/control/usf_wakeup"); + dumpFileContent("AoC audio wake", "/sys/devices/platform/19000000.aoc/control/audio_wakeup"); + dumpFileContent("AoC logging wake", "/sys/devices/platform/19000000.aoc/control/logging_wakeup"); + dumpFileContent("AoC hotword wake", "/sys/devices/platform/19000000.aoc/control/hotword_wakeup"); + dumpFileContent("AoC memory exception wake", "/sys/devices/platform/19000000.aoc/control/memory_exception"); + dumpFileContent("AoC memory votes", "/sys/devices/platform/19000000.aoc/control/memory_votes_a32"); + dumpFileContent("AoC memory votes", "/sys/devices/platform/19000000.aoc/control/memory_votes_ff1"); + command("clean AoC buffer","echo ' ' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug"); + command("AoC Heap Stats (A32)", "echo 'dbg heap -c 1' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug"); + command("AoC Heap Stats (F1)", "echo 'dbg heap -c 2' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug"); + command("AoC Heap Stats (HF0)", "echo 'dbg heap -c 3' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug"); + command("AoC Heap Stats (HF1)", "echo 'dbg heap -c 4' > /dev/acd-debug; timeout 0.1 cat /dev/acd-debug"); + return 0; +} |