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

Commit 37b912b8 authored by Michael Wachenschwanz's avatar Michael Wachenschwanz
Browse files

Provide Recent Disk Perf via IStoraged

Expose recent disk write performance to Java side services.

Bug: 62393328
Test: manual
Change-Id: I6002681b17e7f5b9538b4dc9e312843cf838e467
parent baca8163
Loading
Loading
Loading
Loading
+1 −0
Original line number Diff line number Diff line
@@ -20,4 +20,5 @@ package android.os;
interface IStoraged {
    void onUserStarted(int userId);
    void onUserStopped(int userId);
    int getRecentPerf();
}
 No newline at end of file
+2 −0
Original line number Diff line number Diff line
@@ -116,6 +116,8 @@ public:
        return storage_info->get_perf_history();
    }

    uint32_t get_recent_perf(void) { return storage_info->get_recent_perf(); }

    map<uint64_t, struct uid_records> get_uid_records(
            double hours, uint64_t threshold, bool force_report) {
        return mUidm.dump(hours, threshold, force_report);
+1 −0
Original line number Diff line number Diff line
@@ -75,6 +75,7 @@ public:
    void update_perf_history(uint32_t bw,
                             const time_point<system_clock>& tp);
    vector<int> get_perf_history();
    uint32_t get_recent_perf();
};

class emmc_info_t : public storage_info_t {
+1 −0
Original line number Diff line number Diff line
@@ -39,6 +39,7 @@ public:

    binder::Status onUserStarted(int32_t userId);
    binder::Status onUserStopped(int32_t userId);
    binder::Status getRecentPerf(int32_t* _aidl_return);
};

class StoragedPrivateService : public BinderService<StoragedPrivateService>, public BnStoragedPrivate {
+7 −0
Original line number Diff line number Diff line
@@ -213,6 +213,13 @@ vector<int> storage_info_t::get_perf_history()
    return ret;
}

uint32_t storage_info_t::get_recent_perf() {
    Mutex::Autolock _l(si_mutex);
    if (recent_perf.size() == 0) return 0;
    return accumulate(recent_perf.begin(), recent_perf.end(), recent_perf.size() / 2) /
           recent_perf.size();
}

void emmc_info_t::report()
{
    if (!report_sysfs() && !report_debugfs())
Loading