Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit e7f29362 authored by Stan Rokita's avatar Stan Rokita
Browse files

[Sensors MH2] Keep track of most events seen on pending queue

Bug: 148243746
Test: Load onto device and run
'adb shell lshal debug android.hardware.sensors@2.0::ISensors/default'
to observe correct output

Change-Id: I8f7d87e86860bbca229051fec35b7048c4b3268b
parent 27cfaa82
Loading
Loading
Loading
Loading
+4 −0
Original line number Original line Diff line number Diff line
@@ -290,6 +290,8 @@ Return<void> HalProxy::debug(const hidl_handle& fd, const hidl_vec<hidl_string>&
    stream << "  Wakelock ref count: " << mWakelockRefCount << std::endl;
    stream << "  Wakelock ref count: " << mWakelockRefCount << std::endl;
    stream << "  # of events on pending write writes queue: " << mSizePendingWriteEventsQueue
    stream << "  # of events on pending write writes queue: " << mSizePendingWriteEventsQueue
           << std::endl;
           << std::endl;
    stream << " Most events seen on pending write events queue: "
           << mMostEventsObservedPendingWriteEventsQueue << std::endl;
    if (!mPendingWriteEventsQueue.empty()) {
    if (!mPendingWriteEventsQueue.empty()) {
        stream << "  Size of events list on front of pending writes queue: "
        stream << "  Size of events list on front of pending writes queue: "
               << mPendingWriteEventsQueue.front().first.size() << std::endl;
               << mPendingWriteEventsQueue.front().first.size() << std::endl;
@@ -571,6 +573,8 @@ void HalProxy::postEventsToMessageQueue(const std::vector<Event>& events, size_t
        std::vector<Event> eventsLeft(events.begin() + numToWrite, events.end());
        std::vector<Event> eventsLeft(events.begin() + numToWrite, events.end());
        mPendingWriteEventsQueue.push({eventsLeft, numWakeupEvents});
        mPendingWriteEventsQueue.push({eventsLeft, numWakeupEvents});
        mSizePendingWriteEventsQueue += numLeft;
        mSizePendingWriteEventsQueue += numLeft;
        mMostEventsObservedPendingWriteEventsQueue =
                std::max(mMostEventsObservedPendingWriteEventsQueue, mSizePendingWriteEventsQueue);
        mEventQueueWriteCV.notify_one();
        mEventQueueWriteCV.notify_one();
    }
    }
}
}
+3 −0
Original line number Original line Diff line number Diff line
@@ -200,6 +200,9 @@ class HalProxy : public ISensors, public IScopedWakelockRefCounter {
     */
     */
    std::queue<std::pair<std::vector<Event>, size_t>> mPendingWriteEventsQueue;
    std::queue<std::pair<std::vector<Event>, size_t>> mPendingWriteEventsQueue;


    //! The most events observed on the pending write events queue for debug purposes.
    size_t mMostEventsObservedPendingWriteEventsQueue = 0;

    //! The max number of events allowed in the pending write events queue
    //! The max number of events allowed in the pending write events queue
    static constexpr size_t kMaxSizePendingWriteEventsQueue = 100000;
    static constexpr size_t kMaxSizePendingWriteEventsQueue = 100000;