Loading core/proto/android/service/graphicsstats.proto +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ message GraphicsStatsProto { optional string package_name = 1; // The version code of the app optional int32 version_code = 2; optional int64 version_code = 2; // The start & end timestamps in UTC as // milliseconds since January 1, 1970 Loading libs/hwui/service/GraphicsStatsService.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ static_assert(sizeof(sCurrentFileVersion) == sHeaderSize, "Header size is wrong" constexpr int sHistogramSize = ProfileData::HistogramSize(); static bool mergeProfileDataIntoProto(service::GraphicsStatsProto* proto, const std::string& package, int versionCode, const std::string& package, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data); static void dumpAsTextToFd(service::GraphicsStatsProto* proto, int outFd); Loading Loading @@ -154,7 +154,7 @@ bool GraphicsStatsService::parseFromFile(const std::string& path, } bool mergeProfileDataIntoProto(service::GraphicsStatsProto* proto, const std::string& package, int versionCode, int64_t startTime, int64_t endTime, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data) { if (proto->stats_start() == 0 || proto->stats_start() > startTime) { proto->set_stats_start(startTime); Loading Loading @@ -230,7 +230,7 @@ void dumpAsTextToFd(service::GraphicsStatsProto* proto, int fd) { return; } dprintf(fd, "\nPackage: %s", proto->package_name().c_str()); dprintf(fd, "\nVersion: %d", proto->version_code()); dprintf(fd, "\nVersion: %lld", proto->version_code()); dprintf(fd, "\nStats since: %lldns", proto->stats_start()); dprintf(fd, "\nStats end: %lldns", proto->stats_end()); auto summary = proto->summary(); Loading @@ -254,7 +254,7 @@ void dumpAsTextToFd(service::GraphicsStatsProto* proto, int fd) { } void GraphicsStatsService::saveBuffer(const std::string& path, const std::string& package, int versionCode, int64_t startTime, int64_t endTime, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data) { service::GraphicsStatsProto statsProto; if (!parseFromFile(path, &statsProto)) { Loading Loading @@ -320,8 +320,8 @@ GraphicsStatsService::Dump* GraphicsStatsService::createDump(int outFd, DumpType } void GraphicsStatsService::addToDump(Dump* dump, const std::string& path, const std::string& package, int versionCode, int64_t startTime, int64_t endTime, const ProfileData* data) { const std::string& package, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data) { service::GraphicsStatsProto statsProto; if (!path.empty() && !parseFromFile(path, &statsProto)) { statsProto.Clear(); Loading libs/hwui/service/GraphicsStatsService.h +2 −2 Original line number Diff line number Diff line Loading @@ -44,12 +44,12 @@ public: }; ANDROID_API static void saveBuffer(const std::string& path, const std::string& package, int versionCode, int64_t startTime, int64_t endTime, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data); ANDROID_API static Dump* createDump(int outFd, DumpType type); ANDROID_API static void addToDump(Dump* dump, const std::string& path, const std::string& package, int versionCode, const std::string& package, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data); ANDROID_API static void addToDump(Dump* dump, const std::string& path); ANDROID_API static void finishDump(Dump* dump); Loading services/core/java/com/android/server/GraphicsStatsService.java +10 −8 Original line number Diff line number Diff line Loading @@ -175,7 +175,8 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { 0, UserHandle.getUserId(uid)); synchronized (mLock) { pfd = requestBufferForProcessLocked(token, uid, pid, packageName, info.versionCode); pfd = requestBufferForProcessLocked(token, uid, pid, packageName, info.getLongVersionCode()); } } catch (PackageManager.NameNotFoundException ex) { throw new RemoteException("Unable to find package: '" + packageName + "'"); Loading @@ -197,7 +198,7 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { } private ParcelFileDescriptor requestBufferForProcessLocked(IGraphicsStatsCallback token, int uid, int pid, String packageName, int versionCode) throws RemoteException { int uid, int pid, String packageName, long versionCode) throws RemoteException { ActiveBuffer buffer = fetchActiveBuffersLocked(token, uid, pid, packageName, versionCode); scheduleRotateLocked(); return getPfd(buffer.mProcessBuffer); Loading Loading @@ -292,7 +293,7 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { } private ActiveBuffer fetchActiveBuffersLocked(IGraphicsStatsCallback token, int uid, int pid, String packageName, int versionCode) throws RemoteException { String packageName, long versionCode) throws RemoteException { int size = mActive.size(); long today = normalizeDate(System.currentTimeMillis()).getTimeInMillis(); for (int i = 0; i < size; i++) { Loading Loading @@ -381,19 +382,19 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { private static native int nGetAshmemSize(); private static native long nCreateDump(int outFd, boolean isProto); private static native void nAddToDump(long dump, String path, String packageName, int versionCode, long startTime, long endTime, byte[] data); long versionCode, long startTime, long endTime, byte[] data); private static native void nAddToDump(long dump, String path); private static native void nFinishDump(long dump); private static native void nSaveBuffer(String path, String packageName, int versionCode, private static native void nSaveBuffer(String path, String packageName, long versionCode, long startTime, long endTime, byte[] data); private final class BufferInfo { final String packageName; final int versionCode; final long versionCode; long startTime; long endTime; BufferInfo(String packageName, int versionCode, long startTime) { BufferInfo(String packageName, long versionCode, long startTime) { this.packageName = packageName; this.versionCode = versionCode; this.startTime = startTime; Loading @@ -408,7 +409,8 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { final IBinder mToken; MemoryFile mProcessBuffer; ActiveBuffer(IGraphicsStatsCallback token, int uid, int pid, String packageName, int versionCode) ActiveBuffer(IGraphicsStatsCallback token, int uid, int pid, String packageName, long versionCode) throws RemoteException, IOException { mInfo = new BufferInfo(packageName, versionCode, System.currentTimeMillis()); mUid = uid; Loading services/core/jni/com_android_server_GraphicsStatsService.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ static jlong createDump(JNIEnv*, jobject, jint fd, jboolean isProto) { } static void addToDump(JNIEnv* env, jobject, jlong dumpPtr, jstring jpath, jstring jpackage, jint versionCode, jlong startTime, jlong endTime, jbyteArray jdata) { jlong versionCode, jlong startTime, jlong endTime, jbyteArray jdata) { std::string path; const ProfileData* data = nullptr; LOG_ALWAYS_FATAL_IF(jdata == nullptr && jpath == nullptr, "Path and data can't both be null"); Loading Loading @@ -78,7 +78,7 @@ static void finishDump(JNIEnv*, jobject, jlong dumpPtr) { } static void saveBuffer(JNIEnv* env, jobject clazz, jstring jpath, jstring jpackage, jint versionCode, jlong startTime, jlong endTime, jbyteArray jdata) { jlong versionCode, jlong startTime, jlong endTime, jbyteArray jdata) { ScopedByteArrayRO buffer(env, jdata); LOG_ALWAYS_FATAL_IF(buffer.size() != sizeof(ProfileData), "Buffer size %zu doesn't match expected %zu!", buffer.size(), sizeof(ProfileData)); Loading @@ -96,10 +96,10 @@ static void saveBuffer(JNIEnv* env, jobject clazz, jstring jpath, jstring jpacka static const JNINativeMethod sMethods[] = { { "nGetAshmemSize", "()I", (void*) getAshmemSize }, { "nCreateDump", "(IZ)J", (void*) createDump }, { "nAddToDump", "(JLjava/lang/String;Ljava/lang/String;IJJ[B)V", (void*) addToDump }, { "nAddToDump", "(JLjava/lang/String;Ljava/lang/String;JJJ[B)V", (void*) addToDump }, { "nAddToDump", "(JLjava/lang/String;)V", (void*) addFileToDump }, { "nFinishDump", "(J)V", (void*) finishDump }, { "nSaveBuffer", "(Ljava/lang/String;Ljava/lang/String;IJJ[B)V", (void*) saveBuffer }, { "nSaveBuffer", "(Ljava/lang/String;Ljava/lang/String;JJJ[B)V", (void*) saveBuffer }, }; int register_android_server_GraphicsStatsService(JNIEnv* env) Loading Loading
core/proto/android/service/graphicsstats.proto +1 −1 Original line number Diff line number Diff line Loading @@ -31,7 +31,7 @@ message GraphicsStatsProto { optional string package_name = 1; // The version code of the app optional int32 version_code = 2; optional int64 version_code = 2; // The start & end timestamps in UTC as // milliseconds since January 1, 1970 Loading
libs/hwui/service/GraphicsStatsService.cpp +6 −6 Original line number Diff line number Diff line Loading @@ -42,7 +42,7 @@ static_assert(sizeof(sCurrentFileVersion) == sHeaderSize, "Header size is wrong" constexpr int sHistogramSize = ProfileData::HistogramSize(); static bool mergeProfileDataIntoProto(service::GraphicsStatsProto* proto, const std::string& package, int versionCode, const std::string& package, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data); static void dumpAsTextToFd(service::GraphicsStatsProto* proto, int outFd); Loading Loading @@ -154,7 +154,7 @@ bool GraphicsStatsService::parseFromFile(const std::string& path, } bool mergeProfileDataIntoProto(service::GraphicsStatsProto* proto, const std::string& package, int versionCode, int64_t startTime, int64_t endTime, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data) { if (proto->stats_start() == 0 || proto->stats_start() > startTime) { proto->set_stats_start(startTime); Loading Loading @@ -230,7 +230,7 @@ void dumpAsTextToFd(service::GraphicsStatsProto* proto, int fd) { return; } dprintf(fd, "\nPackage: %s", proto->package_name().c_str()); dprintf(fd, "\nVersion: %d", proto->version_code()); dprintf(fd, "\nVersion: %lld", proto->version_code()); dprintf(fd, "\nStats since: %lldns", proto->stats_start()); dprintf(fd, "\nStats end: %lldns", proto->stats_end()); auto summary = proto->summary(); Loading @@ -254,7 +254,7 @@ void dumpAsTextToFd(service::GraphicsStatsProto* proto, int fd) { } void GraphicsStatsService::saveBuffer(const std::string& path, const std::string& package, int versionCode, int64_t startTime, int64_t endTime, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data) { service::GraphicsStatsProto statsProto; if (!parseFromFile(path, &statsProto)) { Loading Loading @@ -320,8 +320,8 @@ GraphicsStatsService::Dump* GraphicsStatsService::createDump(int outFd, DumpType } void GraphicsStatsService::addToDump(Dump* dump, const std::string& path, const std::string& package, int versionCode, int64_t startTime, int64_t endTime, const ProfileData* data) { const std::string& package, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data) { service::GraphicsStatsProto statsProto; if (!path.empty() && !parseFromFile(path, &statsProto)) { statsProto.Clear(); Loading
libs/hwui/service/GraphicsStatsService.h +2 −2 Original line number Diff line number Diff line Loading @@ -44,12 +44,12 @@ public: }; ANDROID_API static void saveBuffer(const std::string& path, const std::string& package, int versionCode, int64_t startTime, int64_t endTime, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data); ANDROID_API static Dump* createDump(int outFd, DumpType type); ANDROID_API static void addToDump(Dump* dump, const std::string& path, const std::string& package, int versionCode, const std::string& package, int64_t versionCode, int64_t startTime, int64_t endTime, const ProfileData* data); ANDROID_API static void addToDump(Dump* dump, const std::string& path); ANDROID_API static void finishDump(Dump* dump); Loading
services/core/java/com/android/server/GraphicsStatsService.java +10 −8 Original line number Diff line number Diff line Loading @@ -175,7 +175,8 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { 0, UserHandle.getUserId(uid)); synchronized (mLock) { pfd = requestBufferForProcessLocked(token, uid, pid, packageName, info.versionCode); pfd = requestBufferForProcessLocked(token, uid, pid, packageName, info.getLongVersionCode()); } } catch (PackageManager.NameNotFoundException ex) { throw new RemoteException("Unable to find package: '" + packageName + "'"); Loading @@ -197,7 +198,7 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { } private ParcelFileDescriptor requestBufferForProcessLocked(IGraphicsStatsCallback token, int uid, int pid, String packageName, int versionCode) throws RemoteException { int uid, int pid, String packageName, long versionCode) throws RemoteException { ActiveBuffer buffer = fetchActiveBuffersLocked(token, uid, pid, packageName, versionCode); scheduleRotateLocked(); return getPfd(buffer.mProcessBuffer); Loading Loading @@ -292,7 +293,7 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { } private ActiveBuffer fetchActiveBuffersLocked(IGraphicsStatsCallback token, int uid, int pid, String packageName, int versionCode) throws RemoteException { String packageName, long versionCode) throws RemoteException { int size = mActive.size(); long today = normalizeDate(System.currentTimeMillis()).getTimeInMillis(); for (int i = 0; i < size; i++) { Loading Loading @@ -381,19 +382,19 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { private static native int nGetAshmemSize(); private static native long nCreateDump(int outFd, boolean isProto); private static native void nAddToDump(long dump, String path, String packageName, int versionCode, long startTime, long endTime, byte[] data); long versionCode, long startTime, long endTime, byte[] data); private static native void nAddToDump(long dump, String path); private static native void nFinishDump(long dump); private static native void nSaveBuffer(String path, String packageName, int versionCode, private static native void nSaveBuffer(String path, String packageName, long versionCode, long startTime, long endTime, byte[] data); private final class BufferInfo { final String packageName; final int versionCode; final long versionCode; long startTime; long endTime; BufferInfo(String packageName, int versionCode, long startTime) { BufferInfo(String packageName, long versionCode, long startTime) { this.packageName = packageName; this.versionCode = versionCode; this.startTime = startTime; Loading @@ -408,7 +409,8 @@ public class GraphicsStatsService extends IGraphicsStats.Stub { final IBinder mToken; MemoryFile mProcessBuffer; ActiveBuffer(IGraphicsStatsCallback token, int uid, int pid, String packageName, int versionCode) ActiveBuffer(IGraphicsStatsCallback token, int uid, int pid, String packageName, long versionCode) throws RemoteException, IOException { mInfo = new BufferInfo(packageName, versionCode, System.currentTimeMillis()); mUid = uid; Loading
services/core/jni/com_android_server_GraphicsStatsService.cpp +4 −4 Original line number Diff line number Diff line Loading @@ -39,7 +39,7 @@ static jlong createDump(JNIEnv*, jobject, jint fd, jboolean isProto) { } static void addToDump(JNIEnv* env, jobject, jlong dumpPtr, jstring jpath, jstring jpackage, jint versionCode, jlong startTime, jlong endTime, jbyteArray jdata) { jlong versionCode, jlong startTime, jlong endTime, jbyteArray jdata) { std::string path; const ProfileData* data = nullptr; LOG_ALWAYS_FATAL_IF(jdata == nullptr && jpath == nullptr, "Path and data can't both be null"); Loading Loading @@ -78,7 +78,7 @@ static void finishDump(JNIEnv*, jobject, jlong dumpPtr) { } static void saveBuffer(JNIEnv* env, jobject clazz, jstring jpath, jstring jpackage, jint versionCode, jlong startTime, jlong endTime, jbyteArray jdata) { jlong versionCode, jlong startTime, jlong endTime, jbyteArray jdata) { ScopedByteArrayRO buffer(env, jdata); LOG_ALWAYS_FATAL_IF(buffer.size() != sizeof(ProfileData), "Buffer size %zu doesn't match expected %zu!", buffer.size(), sizeof(ProfileData)); Loading @@ -96,10 +96,10 @@ static void saveBuffer(JNIEnv* env, jobject clazz, jstring jpath, jstring jpacka static const JNINativeMethod sMethods[] = { { "nGetAshmemSize", "()I", (void*) getAshmemSize }, { "nCreateDump", "(IZ)J", (void*) createDump }, { "nAddToDump", "(JLjava/lang/String;Ljava/lang/String;IJJ[B)V", (void*) addToDump }, { "nAddToDump", "(JLjava/lang/String;Ljava/lang/String;JJJ[B)V", (void*) addToDump }, { "nAddToDump", "(JLjava/lang/String;)V", (void*) addFileToDump }, { "nFinishDump", "(J)V", (void*) finishDump }, { "nSaveBuffer", "(Ljava/lang/String;Ljava/lang/String;IJJ[B)V", (void*) saveBuffer }, { "nSaveBuffer", "(Ljava/lang/String;Ljava/lang/String;JJJ[B)V", (void*) saveBuffer }, }; int register_android_server_GraphicsStatsService(JNIEnv* env) Loading