From 6880307e8e35a6c484942443fb4ddd6173126152 Mon Sep 17 00:00:00 2001 From: Ian Pedowitz Date: Thu, 22 Oct 2015 22:08:10 +0000 Subject: [PATCH] Revert "Track ashmem memory usage in Parcel" This reverts commit e2f499fb734bc30a1e1c947112caa0727349b6ed. Bug: 25169267 Bug: 25191602 Bug: 25004154 Change-Id: I24bb0da4e8739ee5a0c251e4adac9904827144e0 --- include/binder/Parcel.h | 6 ++---- libs/binder/Parcel.cpp | 38 ++++++++++---------------------------- 2 files changed, 12 insertions(+), 32 deletions(-) diff --git a/include/binder/Parcel.h b/include/binder/Parcel.h index 220a9353f..3ada1e909 100644 --- a/include/binder/Parcel.h +++ b/include/binder/Parcel.h @@ -342,11 +342,9 @@ public: private: size_t mBlobAshmemSize; - size_t mOpenAshmemSize; public: size_t getBlobAshmemSize() const; - size_t getOpenAshmemSize() const; }; // --------------------------------------------------------------------------- @@ -414,9 +412,9 @@ inline TextOutput& operator<<(TextOutput& to, const Parcel& parcel) // Generic acquire and release of objects. void acquire_object(const sp& proc, - const flat_binder_object& obj, const void* who, size_t* outAshmemSize); + const flat_binder_object& obj, const void* who); void release_object(const sp& proc, - const flat_binder_object& obj, const void* who, size_t* outAshmemSize); + const flat_binder_object& obj, const void* who); void flatten_binder(const sp& proc, const sp& binder, flat_binder_object* out); diff --git a/libs/binder/Parcel.cpp b/libs/binder/Parcel.cpp index 1c0358518..7a4ddc43a 100644 --- a/libs/binder/Parcel.cpp +++ b/libs/binder/Parcel.cpp @@ -96,7 +96,7 @@ enum { }; void acquire_object(const sp& proc, - const flat_binder_object& obj, const void* who, size_t* outAshmemSize) + const flat_binder_object& obj, const void* who) { switch (obj.type) { case BINDER_TYPE_BINDER: @@ -123,13 +123,8 @@ void acquire_object(const sp& proc, return; } case BINDER_TYPE_FD: { - if (obj.cookie != 0) { - // If we own an ashmem fd, keep track of how much memory it refers to. - int size = ashmem_get_size_region(obj.handle); - if (size > 0) { - *outAshmemSize += size; - } - } + // intentionally blank -- nothing to do to acquire this, but we do + // recognize it as a legitimate object type. return; } } @@ -138,7 +133,7 @@ void acquire_object(const sp& proc, } void release_object(const sp& proc, - const flat_binder_object& obj, const void* who, size_t* outAshmemSize) + const flat_binder_object& obj, const void* who) { switch (obj.type) { case BINDER_TYPE_BINDER: @@ -165,14 +160,7 @@ void release_object(const sp& proc, return; } case BINDER_TYPE_FD: { - if (obj.cookie != 0) { - int size = ashmem_get_size_region(obj.handle); - if (size > 0) { - *outAshmemSize -= size; - } - - close(obj.handle); - } + if (obj.cookie != 0) close(obj.handle); return; } } @@ -516,7 +504,7 @@ status_t Parcel::appendFrom(const Parcel *parcel, size_t offset, size_t len) flat_binder_object* flat = reinterpret_cast(mData + off); - acquire_object(proc, *flat, this, &mOpenAshmemSize); + acquire_object(proc, *flat, this); if (flat->type == BINDER_TYPE_FD) { // If this is a file descriptor, we need to dup it so the @@ -1038,7 +1026,7 @@ restart_write: // Need to write meta-data? if (nullMetaData || val.binder != 0) { mObjects[mObjectsSize] = mDataPos; - acquire_object(ProcessState::self(), val, this, &mOpenAshmemSize); + acquire_object(ProcessState::self(), val, this); mObjectsSize++; } @@ -1621,7 +1609,7 @@ void Parcel::releaseObjects() i--; const flat_binder_object* flat = reinterpret_cast(data+objects[i]); - release_object(proc, *flat, this, &mOpenAshmemSize); + release_object(proc, *flat, this); } } @@ -1635,7 +1623,7 @@ void Parcel::acquireObjects() i--; const flat_binder_object* flat = reinterpret_cast(data+objects[i]); - acquire_object(proc, *flat, this, &mOpenAshmemSize); + acquire_object(proc, *flat, this); } } @@ -1817,7 +1805,7 @@ status_t Parcel::continueWrite(size_t desired) // will need to rescan because we may have lopped off the only FDs mFdsKnown = false; } - release_object(proc, *flat, this, &mOpenAshmemSize); + release_object(proc, *flat, this); } binder_size_t* objects = (binder_size_t*)realloc(mObjects, objectsSize*sizeof(binder_size_t)); @@ -1903,7 +1891,6 @@ void Parcel::initState() mAllowFds = true; mOwner = NULL; mBlobAshmemSize = 0; - mOpenAshmemSize = 0; } void Parcel::scanForFds() const @@ -1926,11 +1913,6 @@ size_t Parcel::getBlobAshmemSize() const return mBlobAshmemSize; } -size_t Parcel::getOpenAshmemSize() const -{ - return mOpenAshmemSize; -} - // --- Parcel::Blob --- Parcel::Blob::Blob() :