diff options
author | Steven Moreland <smoreland@google.com> | 2021-01-21 19:02:54 +0000 |
---|---|---|
committer | android-build-team Robot <android-build-team-robot@google.com> | 2021-02-09 20:19:47 +0000 |
commit | 6c6cd37f20ed5873555bd59563d67299078a4323 (patch) | |
tree | 43e7a1a4c8fa5b889c6e2b4c3e91f5e444c48fbb | |
parent | 56c311eca40a5832ff885ed01ec3acafd9d9e471 (diff) | |
download | libhidl-6c6cd37f20ed5873555bd59563d67299078a4323.tar.gz |
Rip out getProcessAgeMs.
A certain system crash has pointed to this at least 77K times, and it's
not important.
Bug: 173264759
Test: boot
Change-Id: Ice3dddee6d62c443d3fd88e1082e5af7a58b4255
Merged-In: Ice3dddee6d62c443d3fd88e1082e5af7a58b4255
(cherry picked from commit 8ea10819ca6a3333f488fdfdf2e8eef5cc3ac3cf)
-rw-r--r-- | transport/ServiceManagement.cpp | 64 |
1 files changed, 1 insertions, 63 deletions
diff --git a/transport/ServiceManagement.cpp b/transport/ServiceManagement.cpp index 5f92dc1..a7e9626 100644 --- a/transport/ServiceManagement.cpp +++ b/transport/ServiceManagement.cpp @@ -153,70 +153,8 @@ __attribute__((noinline)) static void tryShortenProcessName(const std::string& d namespace details { -/* - * Returns the age of the current process by reading /proc/self/stat and comparing starttime to the - * current time. This is useful for measuring how long it took a HAL to register itself. - */ -__attribute__((noinline)) static long getProcessAgeMs() { - constexpr const int PROCFS_STAT_STARTTIME_INDEX = 21; - std::string content; - if (!android::base::ReadFileToString("/proc/self/stat", &content, false)) { - LOG(ERROR) << "Process age: Could not read /proc/self/stat"; - return -1; - } - - std::vector<std::string> stats = android::base::Split(content, " "); - if (PROCFS_STAT_STARTTIME_INDEX >= stats.size()) { - LOG(ERROR) << "Process age: Could not read starttime from /proc/self/stat"; - return -1; - } - - const std::string& startTimeString = stats.at(PROCFS_STAT_STARTTIME_INDEX); - unsigned long long startTimeInClockTicks = 0; - if (!android::base::ParseUint(startTimeString, &startTimeInClockTicks)) { - LOG(ERROR) << "Process age: Could not parse start time: " << startTimeString; - return -1; - } - - const int64_t ticksPerSecond = sysconf(_SC_CLK_TCK); - if (ticksPerSecond <= 0) { - LOG(ERROR) << "Process age: Invalid _SC_CLK_TCK: " << ticksPerSecond; - return -1; - } - - const int64_t uptime = android::uptimeMillis(); - if (uptime < 0) { - LOG(ERROR) << "Process age: Invalid uptime: " << uptime; - return -1; - } - - unsigned long long startTimeTicks; - if (__builtin_umulll_overflow(1000ULL, startTimeInClockTicks, &startTimeTicks)) { - LOG(ERROR) << "Process age: Too many ticks, overflow: " << startTimeInClockTicks; - return -1; - } - - long startTimeMs = startTimeTicks / ticksPerSecond; - if (startTimeMs >= uptime) { - LOG(ERROR) << "Process age: process started in future: " << startTimeMs << " after " - << uptime; - return -1; - } - - return uptime - startTimeMs; -} - static void onRegistrationImpl(const std::string& descriptor, const std::string& instanceName) { - long halStartDelay = getProcessAgeMs(); - if (halStartDelay >= 0) { - // The "start delay" printed here is an estimate of how long it took the HAL to go from - // process creation to registering itself as a HAL. Actual start time could be longer - // because the process might not have joined the threadpool yet, so it might not be ready to - // process transactions. - LOG(INFO) << "Registered " << descriptor << "/" << instanceName << " (start delay of " - << halStartDelay << "ms)"; - } - + LOG(INFO) << "Registered " << descriptor << "/" << instanceName; tryShortenProcessName(descriptor); } |