From aa5c2346c7291465aaca53f59878582dccbe4835 Mon Sep 17 00:00:00 2001 From: Dan Sandler Date: Fri, 10 Apr 2015 10:08:45 -0400 Subject: [PATCH] Add ashmem stats to Parcels Requires change Ifaf115da in frameworks/base. Bug: 20079551 Change-Id: Ifaf115dabd1a59cdb1b46e2d49c41f64ac107de4 --- include/binder/Parcel.h | 6 ++++++ libs/binder/Parcel.cpp | 8 ++++++++ 2 files changed, 14 insertions(+) diff --git a/include/binder/Parcel.h b/include/binder/Parcel.h index 0ba3abebd..da960aa0e 100644 --- a/include/binder/Parcel.h +++ b/include/binder/Parcel.h @@ -337,6 +337,12 @@ public: public: inline void* data() { return mData; } }; + +private: + size_t mBlobAshmemSize; + +public: + size_t getBlobAshmemSize() const; }; // --------------------------------------------------------------------------- diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp index d4dd8c7f2..0e11d53c1 100644 --- a/libs/binder/Parcel.cpp +++ b/libs/binder/Parcel.cpp @@ -938,6 +938,8 @@ status_t Parcel::writeBlob(size_t len, WritableBlob* outBlob) int fd = ashmem_create_region("Parcel Blob", len); if (fd < 0) return NO_MEMORY; + mBlobAshmemSize += len; + int result = ashmem_set_prot_region(fd, PROT_READ | PROT_WRITE); if (result < 0) { status = result; @@ -1901,6 +1903,7 @@ void Parcel::initState() mFdsKnown = true; mAllowFds = true; mOwner = NULL; + mBlobAshmemSize = 0; } void Parcel::scanForFds() const @@ -1918,6 +1921,11 @@ void Parcel::scanForFds() const mFdsKnown = true; } +size_t Parcel::getBlobAshmemSize() const +{ + return mBlobAshmemSize; +} + // --- Parcel::Blob --- Parcel::Blob::Blob() :