Loading services/gpuservice/gpustats/GpuStats.cpp +6 −6 Original line number Original line Diff line number Diff line Loading @@ -32,8 +32,8 @@ namespace android { GpuStats::~GpuStats() { GpuStats::~GpuStats() { if (mStatsdRegistered) { if (mStatsdRegistered) { AStatsManager_unregisterPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO); AStatsManager_clearPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO); AStatsManager_unregisterPullAtomCallback(android::util::GPU_STATS_APP_INFO); AStatsManager_clearPullAtomCallback(android::util::GPU_STATS_APP_INFO); } } } } Loading Loading @@ -178,10 +178,10 @@ void GpuStats::interceptSystemDriverStatsLocked() { void GpuStats::registerStatsdCallbacksIfNeeded() { void GpuStats::registerStatsdCallbacksIfNeeded() { if (!mStatsdRegistered) { if (!mStatsdRegistered) { AStatsManager_registerPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO, AStatsManager_setPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO, nullptr, GpuStats::pullAtomCallback, nullptr, this); GpuStats::pullAtomCallback, this); AStatsManager_registerPullAtomCallback(android::util::GPU_STATS_APP_INFO, AStatsManager_setPullAtomCallback(android::util::GPU_STATS_APP_INFO, nullptr, GpuStats::pullAtomCallback, nullptr, this); GpuStats::pullAtomCallback, this); mStatsdRegistered = true; mStatsdRegistered = true; } } } } Loading services/surfaceflinger/TimeStats/TimeStats.cpp +6 −7 Original line number Original line Diff line number Diff line Loading @@ -188,17 +188,16 @@ TimeStats::TimeStats(std::unique_ptr<StatsEventDelegate> statsDelegate, TimeStats::~TimeStats() { TimeStats::~TimeStats() { std::lock_guard<std::mutex> lock(mMutex); std::lock_guard<std::mutex> lock(mMutex); mStatsDelegate->unregisterStatsPullAtomCallback( mStatsDelegate->clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO); android::util::SURFACEFLINGER_STATS_GLOBAL_INFO); mStatsDelegate->clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO); mStatsDelegate->unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO); } } void TimeStats::onBootFinished() { void TimeStats::onBootFinished() { std::lock_guard<std::mutex> lock(mMutex); std::lock_guard<std::mutex> lock(mMutex); mStatsDelegate->registerStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO, mStatsDelegate->setStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO, TimeStats::pullAtomCallback, nullptr, this); nullptr, TimeStats::pullAtomCallback, this); mStatsDelegate->registerStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO, mStatsDelegate->setStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO, TimeStats::pullAtomCallback, nullptr, this); nullptr, TimeStats::pullAtomCallback, this); } } void TimeStats::parseArgs(bool asProto, const Vector<String16>& args, std::string& result) { void TimeStats::parseArgs(bool asProto, const Vector<String16>& args, std::string& result) { Loading services/surfaceflinger/TimeStats/TimeStats.h +7 −7 Original line number Original line Diff line number Diff line Loading @@ -165,15 +165,15 @@ public: virtual AStatsEvent* addStatsEventToPullData(AStatsEventList* data) { virtual AStatsEvent* addStatsEventToPullData(AStatsEventList* data) { return AStatsEventList_addStatsEvent(data); return AStatsEventList_addStatsEvent(data); } } virtual void registerStatsPullAtomCallback(int32_t atom_tag, virtual void setStatsPullAtomCallback(int32_t atom_tag, AStatsManager_PullAtomCallback callback, AStatsManager_PullAtomMetadata* metadata, AStatsManager_PullAtomMetadata* metadata, AStatsManager_PullAtomCallback callback, void* cookie) { void* cookie) { return AStatsManager_registerPullAtomCallback(atom_tag, callback, metadata, cookie); return AStatsManager_setPullAtomCallback(atom_tag, metadata, callback, cookie); } } virtual void unregisterStatsPullAtomCallback(int32_t atom_tag) { virtual void clearStatsPullAtomCallback(int32_t atom_tag) { return AStatsManager_unregisterPullAtomCallback(atom_tag); return AStatsManager_clearPullAtomCallback(atom_tag); } } virtual void statsEventSetAtomId(AStatsEvent* event, uint32_t atom_id) { virtual void statsEventSetAtomId(AStatsEvent* event, uint32_t atom_id) { Loading services/surfaceflinger/tests/unittests/TimeStatsTest.cpp +9 −10 Original line number Original line Diff line number Diff line Loading @@ -152,9 +152,9 @@ public: struct AStatsEvent* addStatsEventToPullData(AStatsEventList*) override { struct AStatsEvent* addStatsEventToPullData(AStatsEventList*) override { return mEvent; return mEvent; } } void registerStatsPullAtomCallback(int32_t atom_tag, void setStatsPullAtomCallback(int32_t atom_tag, AStatsManager_PullAtomMetadata*, AStatsManager_PullAtomCallback callback, AStatsManager_PullAtomCallback callback, AStatsManager_PullAtomMetadata*, void* cookie) override { void* cookie) override { mAtomTags.push_back(atom_tag); mAtomTags.push_back(atom_tag); mCallback = callback; mCallback = callback; mCookie = cookie; mCookie = cookie; Loading @@ -164,7 +164,7 @@ public: return (*mCallback)(atom_tag, nullptr, cookie); return (*mCallback)(atom_tag, nullptr, cookie); } } MOCK_METHOD1(unregisterStatsPullAtomCallback, void(int32_t)); MOCK_METHOD1(clearStatsPullAtomCallback, void(int32_t)); MOCK_METHOD2(statsEventSetAtomId, void(AStatsEvent*, uint32_t)); MOCK_METHOD2(statsEventSetAtomId, void(AStatsEvent*, uint32_t)); MOCK_METHOD2(statsEventWriteInt32, void(AStatsEvent*, int32_t)); MOCK_METHOD2(statsEventWriteInt32, void(AStatsEvent*, int32_t)); MOCK_METHOD2(statsEventWriteInt64, void(AStatsEvent*, int64_t)); MOCK_METHOD2(statsEventWriteInt64, void(AStatsEvent*, int64_t)); Loading Loading @@ -261,18 +261,18 @@ TEST_F(TimeStatsTest, disabledByDefault) { ASSERT_FALSE(mTimeStats->isEnabled()); ASSERT_FALSE(mTimeStats->isEnabled()); } } TEST_F(TimeStatsTest, registersCallbacksAfterBoot) { TEST_F(TimeStatsTest, setsCallbacksAfterBoot) { mTimeStats->onBootFinished(); mTimeStats->onBootFinished(); EXPECT_THAT(mDelegate->mAtomTags, EXPECT_THAT(mDelegate->mAtomTags, UnorderedElementsAre(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO, UnorderedElementsAre(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO, android::util::SURFACEFLINGER_STATS_LAYER_INFO)); android::util::SURFACEFLINGER_STATS_LAYER_INFO)); } } TEST_F(TimeStatsTest, unregistersCallbacksOnDestruction) { TEST_F(TimeStatsTest, clearsCallbacksOnDestruction) { EXPECT_CALL(*mDelegate, EXPECT_CALL(*mDelegate, unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO)); clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO)); EXPECT_CALL(*mDelegate, EXPECT_CALL(*mDelegate, unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO)); clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO)); mTimeStats.reset(); mTimeStats.reset(); } } Loading Loading @@ -1039,8 +1039,7 @@ TEST_F(TimeStatsTest, layerStatsCallback_pullsMultipleBuckets) { insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 3, 4000000); insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 3, 4000000); insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 4, 5000000); insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 4, 5000000); // Now make sure that TimeStats flushes global stats to register the // Now make sure that TimeStats flushes global stats to set the callback. // callback. mTimeStats->setPowerMode(HWC_POWER_MODE_NORMAL); mTimeStats->setPowerMode(HWC_POWER_MODE_NORMAL); mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(3000000)); mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(3000000)); mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(5000000)); mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(5000000)); Loading Loading
services/gpuservice/gpustats/GpuStats.cpp +6 −6 Original line number Original line Diff line number Diff line Loading @@ -32,8 +32,8 @@ namespace android { GpuStats::~GpuStats() { GpuStats::~GpuStats() { if (mStatsdRegistered) { if (mStatsdRegistered) { AStatsManager_unregisterPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO); AStatsManager_clearPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO); AStatsManager_unregisterPullAtomCallback(android::util::GPU_STATS_APP_INFO); AStatsManager_clearPullAtomCallback(android::util::GPU_STATS_APP_INFO); } } } } Loading Loading @@ -178,10 +178,10 @@ void GpuStats::interceptSystemDriverStatsLocked() { void GpuStats::registerStatsdCallbacksIfNeeded() { void GpuStats::registerStatsdCallbacksIfNeeded() { if (!mStatsdRegistered) { if (!mStatsdRegistered) { AStatsManager_registerPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO, AStatsManager_setPullAtomCallback(android::util::GPU_STATS_GLOBAL_INFO, nullptr, GpuStats::pullAtomCallback, nullptr, this); GpuStats::pullAtomCallback, this); AStatsManager_registerPullAtomCallback(android::util::GPU_STATS_APP_INFO, AStatsManager_setPullAtomCallback(android::util::GPU_STATS_APP_INFO, nullptr, GpuStats::pullAtomCallback, nullptr, this); GpuStats::pullAtomCallback, this); mStatsdRegistered = true; mStatsdRegistered = true; } } } } Loading
services/surfaceflinger/TimeStats/TimeStats.cpp +6 −7 Original line number Original line Diff line number Diff line Loading @@ -188,17 +188,16 @@ TimeStats::TimeStats(std::unique_ptr<StatsEventDelegate> statsDelegate, TimeStats::~TimeStats() { TimeStats::~TimeStats() { std::lock_guard<std::mutex> lock(mMutex); std::lock_guard<std::mutex> lock(mMutex); mStatsDelegate->unregisterStatsPullAtomCallback( mStatsDelegate->clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO); android::util::SURFACEFLINGER_STATS_GLOBAL_INFO); mStatsDelegate->clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO); mStatsDelegate->unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO); } } void TimeStats::onBootFinished() { void TimeStats::onBootFinished() { std::lock_guard<std::mutex> lock(mMutex); std::lock_guard<std::mutex> lock(mMutex); mStatsDelegate->registerStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO, mStatsDelegate->setStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO, TimeStats::pullAtomCallback, nullptr, this); nullptr, TimeStats::pullAtomCallback, this); mStatsDelegate->registerStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO, mStatsDelegate->setStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO, TimeStats::pullAtomCallback, nullptr, this); nullptr, TimeStats::pullAtomCallback, this); } } void TimeStats::parseArgs(bool asProto, const Vector<String16>& args, std::string& result) { void TimeStats::parseArgs(bool asProto, const Vector<String16>& args, std::string& result) { Loading
services/surfaceflinger/TimeStats/TimeStats.h +7 −7 Original line number Original line Diff line number Diff line Loading @@ -165,15 +165,15 @@ public: virtual AStatsEvent* addStatsEventToPullData(AStatsEventList* data) { virtual AStatsEvent* addStatsEventToPullData(AStatsEventList* data) { return AStatsEventList_addStatsEvent(data); return AStatsEventList_addStatsEvent(data); } } virtual void registerStatsPullAtomCallback(int32_t atom_tag, virtual void setStatsPullAtomCallback(int32_t atom_tag, AStatsManager_PullAtomCallback callback, AStatsManager_PullAtomMetadata* metadata, AStatsManager_PullAtomMetadata* metadata, AStatsManager_PullAtomCallback callback, void* cookie) { void* cookie) { return AStatsManager_registerPullAtomCallback(atom_tag, callback, metadata, cookie); return AStatsManager_setPullAtomCallback(atom_tag, metadata, callback, cookie); } } virtual void unregisterStatsPullAtomCallback(int32_t atom_tag) { virtual void clearStatsPullAtomCallback(int32_t atom_tag) { return AStatsManager_unregisterPullAtomCallback(atom_tag); return AStatsManager_clearPullAtomCallback(atom_tag); } } virtual void statsEventSetAtomId(AStatsEvent* event, uint32_t atom_id) { virtual void statsEventSetAtomId(AStatsEvent* event, uint32_t atom_id) { Loading
services/surfaceflinger/tests/unittests/TimeStatsTest.cpp +9 −10 Original line number Original line Diff line number Diff line Loading @@ -152,9 +152,9 @@ public: struct AStatsEvent* addStatsEventToPullData(AStatsEventList*) override { struct AStatsEvent* addStatsEventToPullData(AStatsEventList*) override { return mEvent; return mEvent; } } void registerStatsPullAtomCallback(int32_t atom_tag, void setStatsPullAtomCallback(int32_t atom_tag, AStatsManager_PullAtomMetadata*, AStatsManager_PullAtomCallback callback, AStatsManager_PullAtomCallback callback, AStatsManager_PullAtomMetadata*, void* cookie) override { void* cookie) override { mAtomTags.push_back(atom_tag); mAtomTags.push_back(atom_tag); mCallback = callback; mCallback = callback; mCookie = cookie; mCookie = cookie; Loading @@ -164,7 +164,7 @@ public: return (*mCallback)(atom_tag, nullptr, cookie); return (*mCallback)(atom_tag, nullptr, cookie); } } MOCK_METHOD1(unregisterStatsPullAtomCallback, void(int32_t)); MOCK_METHOD1(clearStatsPullAtomCallback, void(int32_t)); MOCK_METHOD2(statsEventSetAtomId, void(AStatsEvent*, uint32_t)); MOCK_METHOD2(statsEventSetAtomId, void(AStatsEvent*, uint32_t)); MOCK_METHOD2(statsEventWriteInt32, void(AStatsEvent*, int32_t)); MOCK_METHOD2(statsEventWriteInt32, void(AStatsEvent*, int32_t)); MOCK_METHOD2(statsEventWriteInt64, void(AStatsEvent*, int64_t)); MOCK_METHOD2(statsEventWriteInt64, void(AStatsEvent*, int64_t)); Loading Loading @@ -261,18 +261,18 @@ TEST_F(TimeStatsTest, disabledByDefault) { ASSERT_FALSE(mTimeStats->isEnabled()); ASSERT_FALSE(mTimeStats->isEnabled()); } } TEST_F(TimeStatsTest, registersCallbacksAfterBoot) { TEST_F(TimeStatsTest, setsCallbacksAfterBoot) { mTimeStats->onBootFinished(); mTimeStats->onBootFinished(); EXPECT_THAT(mDelegate->mAtomTags, EXPECT_THAT(mDelegate->mAtomTags, UnorderedElementsAre(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO, UnorderedElementsAre(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO, android::util::SURFACEFLINGER_STATS_LAYER_INFO)); android::util::SURFACEFLINGER_STATS_LAYER_INFO)); } } TEST_F(TimeStatsTest, unregistersCallbacksOnDestruction) { TEST_F(TimeStatsTest, clearsCallbacksOnDestruction) { EXPECT_CALL(*mDelegate, EXPECT_CALL(*mDelegate, unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO)); clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_GLOBAL_INFO)); EXPECT_CALL(*mDelegate, EXPECT_CALL(*mDelegate, unregisterStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO)); clearStatsPullAtomCallback(android::util::SURFACEFLINGER_STATS_LAYER_INFO)); mTimeStats.reset(); mTimeStats.reset(); } } Loading Loading @@ -1039,8 +1039,7 @@ TEST_F(TimeStatsTest, layerStatsCallback_pullsMultipleBuckets) { insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 3, 4000000); insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 3, 4000000); insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 4, 5000000); insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 4, 5000000); // Now make sure that TimeStats flushes global stats to register the // Now make sure that TimeStats flushes global stats to set the callback. // callback. mTimeStats->setPowerMode(HWC_POWER_MODE_NORMAL); mTimeStats->setPowerMode(HWC_POWER_MODE_NORMAL); mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(3000000)); mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(3000000)); mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(5000000)); mTimeStats->setPresentFenceGlobal(std::make_shared<FenceTime>(5000000)); Loading