summaryrefslogtreecommitdiffstats
path: root/media/libmedia/MediaUtils.h
diff options
context:
space:
mode:
authorMarco Nelissen <marcone@google.com>2016-05-13 10:39:23 -0700
committerThe Android Automerger <android-build@google.com>2016-05-27 11:30:16 -0700
commit6fdee2a83432b3b150d6a34f231c4e2f7353c01e (patch)
tree89d951e6e825431c6e0fe175d1d5df0ae31ec3e1 /media/libmedia/MediaUtils.h
parente7142a0703bc93f75e213e96ebc19000022afed9 (diff)
downloadframeworks_av-6fdee2a83432b3b150d6a34f231c4e2f7353c01e.zip
frameworks_av-6fdee2a83432b3b150d6a34f231c4e2f7353c01e.tar.gz
frameworks_av-6fdee2a83432b3b150d6a34f231c4e2f7353c01e.tar.bz2
limit mediaserver memory
Limit mediaserver using rlimit, to prevent it from bringing down the system via the low memory killer. Default max is 65% of total RAM, but can be customized via system property. Bug: 28471206 Bug: 28615448 Change-Id: Ic84137435d1ef0a6883e9789a4b4f399e4283f05
Diffstat (limited to 'media/libmedia/MediaUtils.h')
-rw-r--r--media/libmedia/MediaUtils.h35
1 files changed, 35 insertions, 0 deletions
diff --git a/media/libmedia/MediaUtils.h b/media/libmedia/MediaUtils.h
new file mode 100644
index 0000000..f80dd30
--- /dev/null
+++ b/media/libmedia/MediaUtils.h
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2016 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+#ifndef _MEDIA_UTILS_H
+#define _MEDIA_UTILS_H
+
+namespace android {
+
+/**
+ Limit the amount of memory a process can allocate using setrlimit(RLIMIT_AS).
+ The value to use will be read from the specified system property, or if the
+ property doesn't exist it will use the specified number of bytes or the
+ specified percentage of total memory, whichever is smaller.
+*/
+void limitProcessMemory(
+ const char *property,
+ size_t numberOfBytes,
+ size_t percentageOfTotalMem);
+
+} // namespace android
+
+#endif // _MEDIA_UTILS_H