storaged: fix check_time logic
Skips event time check if failed to get start time. Use ratelimited logging when gettime fails. Test: adb shell setprop ro.storaged.event.perf_check 10000 Bug: 34630954 Bug: 34198239 Change-Id: I168ef3b4e4ed27257ec76373219c6214a7b7b2ed
This commit is contained in:
parent
f4a7b33dfe
commit
f42d7c833c
1 changed files with 10 additions and 3 deletions
|
@ -22,6 +22,7 @@
|
|||
|
||||
#include <android-base/logging.h>
|
||||
#include <cutils/properties.h>
|
||||
#include <log/log.h>
|
||||
|
||||
#include <storaged.h>
|
||||
#include <storaged_utils.h>
|
||||
|
@ -217,14 +218,20 @@ void storaged_t::event_checked(void) {
|
|||
if (mConfig.event_time_check_usec &&
|
||||
clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &start_ts) < 0) {
|
||||
check_time = false;
|
||||
PLOG_TO(SYSTEM, ERROR) << "clock_gettime() failed";
|
||||
static time_t state_a;
|
||||
IF_ALOG_RATELIMIT_LOCAL(300, &state_a) {
|
||||
PLOG_TO(SYSTEM, ERROR) << "clock_gettime() failed";
|
||||
}
|
||||
}
|
||||
|
||||
event();
|
||||
|
||||
if (mConfig.event_time_check_usec) {
|
||||
if (mConfig.event_time_check_usec && check_time) {
|
||||
if (clock_gettime(CLOCK_PROCESS_CPUTIME_ID, &end_ts) < 0) {
|
||||
PLOG_TO(SYSTEM, ERROR) << "clock_gettime() failed";
|
||||
static time_t state_b;
|
||||
IF_ALOG_RATELIMIT_LOCAL(300, &state_b) {
|
||||
PLOG_TO(SYSTEM, ERROR) << "clock_gettime() failed";
|
||||
}
|
||||
return;
|
||||
}
|
||||
int64_t cost = (end_ts.tv_sec - start_ts.tv_sec) * SEC_TO_USEC +
|
||||
|
|
Loading…
Reference in a new issue