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

Commit 2d828c55 authored by Girish's avatar Girish Committed by Automerger Merge Worker
Browse files

resourcemanager: add resource usage report api am: 7e0d9201

parents a89fe459 7e0d9201
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -102,10 +102,12 @@ cc_library {
        "libstatssocket",
        "libprotobuf-cpp-lite",
        "libactivitymanager_aidl",
        "libaconfig_storage_read_api_cc",
        "aconfig_mediacodec_flags_c_lib",
    ],

    static_libs: [
        "android.media.codec-aconfig-cc",
        "resourceobserver_aidl_interface-V1-ndk",
        "libplatformprotos",
    ],
+9 −0
Original line number Diff line number Diff line
@@ -1105,6 +1105,15 @@ Status ResourceManagerService::notifyClientConfigChanged(const ClientConfigParce
    return Status::ok();
}

Status ResourceManagerService::getMediaResourceUsageReport(
        std::vector<MediaResourceParcel>* resources) {
    // Not implemented
    if (resources) {
        resources->clear();
    }
    return Status::ok();
}

long ResourceManagerService::getPeakConcurrentPixelCount(int pid) const {
    return mResourceManagerMetrics->getPeakConcurrentPixelCount(pid);
}
+2 −0
Original line number Diff line number Diff line
@@ -112,6 +112,8 @@ public:

    Status notifyClientConfigChanged(const ClientConfigParcel& clientConfig) override;

    Status getMediaResourceUsageReport(std::vector<MediaResourceParcel>* resources) override;

protected:
    // To get notifications when a resource is added for the first time.
    void onFirstAdded(const MediaResourceParcel& res, uid_t uid);
+20 −0
Original line number Diff line number Diff line
@@ -21,6 +21,8 @@
#include <binder/IPCThreadState.h>
#include <mediautils/ProcessInfo.h>

#include <android_media_codec.h>

#include "DefaultResourceModel.h"
#include "ClientImportanceReclaimPolicy.h"
#include "ProcessPriorityReclaimPolicy.h"
@@ -223,6 +225,24 @@ Status ResourceManagerServiceNew::notifyClientConfigChanged(
    return ResourceManagerService::notifyClientConfigChanged(clientConfig);
}

Status ResourceManagerServiceNew::getMediaResourceUsageReport(
        std::vector<MediaResourceParcel>* resources) {
    if (!resources) {
        return Status::fromStatus(INVALID_OPERATION);
    }

    resources->clear();
    if (!android::media::codec::codec_availability() ||
        !android::media::codec::codec_availability_support()) {
        return Status::fromStatus(INVALID_OPERATION);
    }

    std::scoped_lock lock{mLock};
    mResourceTracker->getMediaResourceUsageReport(resources);

    return Status::ok();
}

void ResourceManagerServiceNew::getResourceDump(std::string& resourceLog) const {
    std::scoped_lock lock{mLock};
    mResourceTracker->dump(resourceLog);
+2 −0
Original line number Diff line number Diff line
@@ -78,6 +78,8 @@ public:

    Status notifyClientConfigChanged(const ClientConfigParcel& clientConfig) override;

    Status getMediaResourceUsageReport(std::vector<MediaResourceParcel>* resources) override;

    binder_status_t dump(int fd, const char** args, uint32_t numArgs) override;

    friend class ResourceTracker;
Loading