ADPF Session inspect isActive
Bug: 299186288
Test: make libadpf_test
Change-Id: I0bc3268354433dba76f0c8379045e065c99210df
diff --git a/power-libperfmgr/aidl/SessionTaskMap.cpp b/power-libperfmgr/aidl/SessionTaskMap.cpp
index bb084ec..4cc9918 100644
--- a/power-libperfmgr/aidl/SessionTaskMap.cpp
+++ b/power-libperfmgr/aidl/SessionTaskMap.cpp
@@ -74,22 +74,10 @@
return;
}
- /*
- for (auto sessionId : taskItr->second) {
- auto sessItr = mSessions.find(sessionId);
- if (sessItr == mSessions.end()) {
- continue;
- }
-
- if (!sessItr->second.val->isActive) {
- continue;
- }
-
- sessItr->second.val->votes->getUclampRange(&uclampRange, timeNow);
- }
- */
-
for (const auto &sessInTask : taskItr->second) {
+ if (!sessInTask->isActive) {
+ continue;
+ }
sessInTask->votes->getUclampRange(&uclampRange, timeNow);
}
*uclampMin = uclampRange.uclampMin;
diff --git a/power-libperfmgr/aidl/tests/SessionTaskMapTest.cpp b/power-libperfmgr/aidl/tests/SessionTaskMapTest.cpp
index 32067a5..7f7dab3 100644
--- a/power-libperfmgr/aidl/tests/SessionTaskMapTest.cpp
+++ b/power-libperfmgr/aidl/tests/SessionTaskMapTest.cpp
@@ -290,6 +290,44 @@
EXPECT_EQ(0, getVoteMin(m, 20, t0 + 181ns));
}
+TEST(SessionTaskMapTest, TwoSessionsOneInactive) {
+ const auto tNow = std::chrono::steady_clock::now();
+ SessionTaskMap m;
+
+ {
+ SessionValueEntry sv;
+ sv.isActive = true;
+ sv.isAppSession = true;
+ sv.lastUpdatedTime = tNow;
+ sv.votes = std::make_shared<Votes>();
+ sv.votes->add(11, VoteRange::makeMinRange(111, tNow, 400ms));
+ EXPECT_TRUE(m.add(1001, sv, {10, 20, 30}));
+ }
+
+ {
+ SessionValueEntry sv;
+ sv.isActive = true;
+ sv.isAppSession = true;
+ sv.lastUpdatedTime = tNow;
+ sv.votes = std::make_shared<Votes>();
+ sv.votes->add(22, VoteRange::makeMinRange(222, tNow, 400ms));
+ EXPECT_TRUE(m.add(2001, sv, {10, 20, 30}));
+ }
+
+ UclampRange uclampRange;
+ m.getTaskVoteRange(10, tNow + 10ns, &uclampRange.uclampMin, &uclampRange.uclampMax);
+ EXPECT_EQ(222, uclampRange.uclampMin);
+
+ auto sessItr = m.findSession(2001);
+ EXPECT_NE(nullptr, sessItr);
+ sessItr->isActive = false;
+
+ uclampRange.uclampMin = 0;
+ uclampRange.uclampMax = 1024;
+ m.getTaskVoteRange(10, tNow + 10ns, &uclampRange.uclampMin, &uclampRange.uclampMax);
+ EXPECT_EQ(111, uclampRange.uclampMin);
+}
+
} // namespace pixel
} // namespace impl
} // namespace power