diff options
| author | 2020-02-10 11:20:34 -0800 | |
|---|---|---|
| committer | 2020-02-10 12:06:13 -0800 | |
| commit | 7bfc75b74c2e1b7da0d195843013089b7f3d9fce (patch) | |
| tree | 6d13a47ea423daae2c5c3faf337e7908f1ab480c | |
| parent | 82b5b24a948723c4d4b15e1416233c5e214fbaeb (diff) | |
SFStats: track lateAcquired and badDesiredPresent frames from the field
Bug: 135478131
Test: statsd_testdrive 10063
Test: atest libsurfaceflinger_unittest:TimeStatsTest
Change-Id: Ic1ffdc2aaf90ca0266b21d74491be60563943a98
| -rw-r--r-- | services/surfaceflinger/TimeStats/TimeStats.cpp | 3 | ||||
| -rw-r--r-- | services/surfaceflinger/tests/unittests/TimeStatsTest.cpp | 13 |
2 files changed, 15 insertions, 1 deletions
diff --git a/services/surfaceflinger/TimeStats/TimeStats.cpp b/services/surfaceflinger/TimeStats/TimeStats.cpp index 493a7093a0..b2cce7c932 100644 --- a/services/surfaceflinger/TimeStats/TimeStats.cpp +++ b/services/surfaceflinger/TimeStats/TimeStats.cpp @@ -148,6 +148,9 @@ AStatsManager_PullAtomCallbackReturn TimeStats::populateLayerAtom(AStatsEventLis } } + mStatsDelegate->statsEventWriteInt64(event, layer->lateAcquireFrames); + mStatsDelegate->statsEventWriteInt64(event, layer->badDesiredPresentFrames); + mStatsDelegate->statsEventBuild(event); } clearLayersLocked(); diff --git a/services/surfaceflinger/tests/unittests/TimeStatsTest.cpp b/services/surfaceflinger/tests/unittests/TimeStatsTest.cpp index 91a40d012c..fb2e3bddc4 100644 --- a/services/surfaceflinger/tests/unittests/TimeStatsTest.cpp +++ b/services/surfaceflinger/tests/unittests/TimeStatsTest.cpp @@ -892,12 +892,20 @@ MATCHER_P2(BytesEq, bytes, size, "") { return expected == actual; } -TEST_F(TimeStatsTest, layerStatsCallback_pullsAllHistogramsAndClears) { +TEST_F(TimeStatsTest, layerStatsCallback_pullsAllAndClears) { + constexpr size_t LATE_ACQUIRE_FRAMES = 2; + constexpr size_t BAD_DESIRED_PRESENT_FRAMES = 3; EXPECT_TRUE(inputCommand(InputCommand::ENABLE, FMT_STRING).empty()); mTimeStats->onBootFinished(); insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 1, 1000000); + for (size_t i = 0; i < LATE_ACQUIRE_FRAMES; i++) { + mTimeStats->incrementLatchSkipped(LAYER_ID_0, TimeStats::LatchSkipReason::LateAcquire); + } + for (size_t i = 0; i < BAD_DESIRED_PRESENT_FRAMES; i++) { + mTimeStats->incrementBadDesiredPresent(LAYER_ID_0); + } insertTimeRecord(NORMAL_SEQUENCE, LAYER_ID_0, 2, 2000000); EXPECT_THAT(mDelegate->mAtomTags, @@ -955,6 +963,9 @@ TEST_F(TimeStatsTest, layerStatsCallback_pullsAllHistogramsAndClears) { BytesEq((const uint8_t*)expectedPostToAcquire.c_str(), expectedPostToAcquire.size()), expectedPostToAcquire.size())); + EXPECT_CALL(*mDelegate, statsEventWriteInt64(mDelegate->mEvent, LATE_ACQUIRE_FRAMES)); + EXPECT_CALL(*mDelegate, + statsEventWriteInt64(mDelegate->mEvent, BAD_DESIRED_PRESENT_FRAMES)); EXPECT_CALL(*mDelegate, statsEventBuild(mDelegate->mEvent)); } EXPECT_EQ(AStatsManager_PULL_SUCCESS, |