Merge "Add command to clear puller cache"

This commit is contained in:
TreeHugger Robot
2018-02-01 23:58:36 +00:00
committed by Android (Google) Code Review
8 changed files with 33 additions and 1 deletions

View File

@@ -41,6 +41,8 @@ statsd_common_src := \
src/external/ResourceHealthManagerPuller.cpp \
src/external/CpuTimePerUidPuller.cpp \
src/external/CpuTimePerUidFreqPuller.cpp \
src/external/KernelUidCpuActiveTimeReader.cpp \
src/external/KernelUidCpuClusterTimeReader.cpp \
src/external/StatsPullerManagerImpl.cpp \
src/logd/LogEvent.cpp \
src/logd/LogListener.cpp \

View File

@@ -551,6 +551,12 @@ status_t StatsService::cmd_dump_memory_info(FILE* out) {
return NO_ERROR;
}
status_t StatsService::cmd_clear_puller_cache(FILE* out) {
mStatsPullerManager.ClearPullerCache();
fprintf(out, "Puller cached data removed!\n");
return NO_ERROR;
}
Status StatsService::informAllUidData(const vector<int32_t>& uid, const vector<int64_t>& version,
const vector<String16>& app) {
VLOG("StatsService::informAllUidData was called");

View File

@@ -197,6 +197,11 @@ private:
*/
status_t cmd_dump_memory_info(FILE* out);
/*
* Clear all puller cached data
*/
status_t cmd_clear_puller_cache(FILE* out);
/**
* Update a configuration.
*/

View File

@@ -59,6 +59,11 @@ bool StatsPuller::Pull(std::vector<std::shared_ptr<LogEvent>>* data) {
return ret;
}
void StatsPuller::ClearCache() {
lock_guard<std::mutex> lock(mLock);
mCachedData.clear();
}
} // namespace statsd
} // namespace os
} // namespace android

View File

@@ -38,6 +38,8 @@ public:
bool Pull(std::vector<std::shared_ptr<LogEvent>>* data);
void ClearCache();
protected:
// The atom tag id this puller pulls
const int mTagId;

View File

@@ -50,10 +50,14 @@ class StatsPullerManager {
return mPullerManager.Pull(tagId, data);
}
virtual void SetTimeBaseSec(const long timeBaseSec) {
void SetTimeBaseSec(const long timeBaseSec) {
mPullerManager.SetTimeBaseSec(timeBaseSec);
}
void ClearPullerCache() {
mPullerManager.ClearPullerCache();
}
private:
StatsPullerManagerImpl
& mPullerManager = StatsPullerManagerImpl::GetInstance();

View File

@@ -199,6 +199,12 @@ void StatsPullerManagerImpl::OnAlarmFired() {
}
}
void StatsPullerManagerImpl::ClearPullerCache() {
for (auto puller : mPullers) {
puller.second->ClearCache();
}
}
} // namespace statsd
} // namespace os
} // namespace android

View File

@@ -49,6 +49,8 @@ public:
void SetTimeBaseSec(long timeBaseSec) {mTimeBaseSec = timeBaseSec;};
void ClearPullerCache();
private:
StatsPullerManagerImpl();