diff options
author | Andy Quan <andyq@google.com> | 2023-06-02 14:50:13 -0700 |
---|---|---|
committer | Andy Quan <andyq@google.com> | 2023-06-02 14:50:13 -0700 |
commit | d62835f99043f85ecfc1d7283add550b047068f9 (patch) | |
tree | 9f13793d31ef6c216531cc322e5780fe38a84fbe /neuralnetworks/aidl/vts/functional/ValidateModel.cpp | |
parent | 9f3a2e40bf3ca1e866f5c6ec774620b05a06439b (diff) | |
parent | 8c308539d804a6efb2272e4c9e73407241966f34 (diff) |
DO NOT MERGE - Merge tm-qpr3-release TQ3A.230605.010 into tm-platform-merge
Bug: 279962103
Change-Id: I1192811ddd629eab6b0ddfc9c04ff4cf63685346
Diffstat (limited to 'neuralnetworks/aidl/vts/functional/ValidateModel.cpp')
-rw-r--r-- | neuralnetworks/aidl/vts/functional/ValidateModel.cpp | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/neuralnetworks/aidl/vts/functional/ValidateModel.cpp b/neuralnetworks/aidl/vts/functional/ValidateModel.cpp index 060434ed08..d7baf199a5 100644 --- a/neuralnetworks/aidl/vts/functional/ValidateModel.cpp +++ b/neuralnetworks/aidl/vts/functional/ValidateModel.cpp @@ -344,26 +344,24 @@ size_t sizeForBinder(const Model& model) { // currently 1Mb, which is shared by all transactions in progress // for the process." // -// Will our representation fit under this limit? There are two complications: +// Will our representation fit under this limit? There are three complications: // - Our representation size is just approximate (see sizeForBinder()). -// - This object may not be the only occupant of the Binder transaction buffer. +// - This object may not be the only occupant of the Binder transaction buffer +// (although our VTS test suite should not be putting multiple objects in the +// buffer at once). +// - IBinder.MAX_IPC_SIZE recommends limiting a transaction to 64 * 1024 bytes. // So we'll be very conservative: We want the representation size to be no -// larger than half the transaction buffer size. +// larger than half the recommended limit. // // If our representation grows large enough that it still fits within // the transaction buffer but combined with other transactions may // exceed the buffer size, then we may see intermittent HAL transport // errors. static bool exceedsBinderSizeLimit(size_t representationSize) { - // Instead of using this fixed buffer size, we might instead be able to use - // ProcessState::self()->getMmapSize(). However, this has a potential - // problem: The binder/mmap size of the current process does not necessarily - // indicate the binder/mmap size of the service (i.e., the other process). - // The only way it would be a good indication is if both the current process - // and the service use the default size. - static const size_t kHalfBufferSize = 1024 * 1024 / 2; - - return representationSize > kHalfBufferSize; + // There is no C++ API to retrieve the value of the Java variable IBinder.MAX_IPC_SIZE. + static const size_t kHalfMaxIPCSize = 64 * 1024 / 2; + + return representationSize > kHalfMaxIPCSize; } ///////////////////////// VALIDATE EXECUTION ORDER //////////////////////////// |