diff options
author | Marco Nelissen <marcone@google.com> | 2016-05-13 10:39:23 -0700 |
---|---|---|
committer | The Android Automerger <android-build@google.com> | 2016-05-27 11:30:16 -0700 |
commit | 6fdee2a83432b3b150d6a34f231c4e2f7353c01e (patch) | |
tree | 89d951e6e825431c6e0fe175d1d5df0ae31ec3e1 /media/mediaserver | |
parent | e7142a0703bc93f75e213e96ebc19000022afed9 (diff) | |
download | frameworks_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/mediaserver')
-rw-r--r-- | media/mediaserver/Android.mk | 1 | ||||
-rw-r--r-- | media/mediaserver/main_mediaserver.cpp | 6 |
2 files changed, 7 insertions, 0 deletions
diff --git a/media/mediaserver/Android.mk b/media/mediaserver/Android.mk index b6de0d9..7e017b9 100644 --- a/media/mediaserver/Android.mk +++ b/media/mediaserver/Android.mk @@ -37,6 +37,7 @@ LOCAL_STATIC_LIBRARIES := \ LOCAL_C_INCLUDES := \ frameworks/av/media/libmediaplayerservice \ + frameworks/av/media/libmedia \ frameworks/av/services/medialog \ frameworks/av/services/audioflinger \ frameworks/av/services/audiopolicy \ diff --git a/media/mediaserver/main_mediaserver.cpp b/media/mediaserver/main_mediaserver.cpp index 4a485ed..8cc9508 100644 --- a/media/mediaserver/main_mediaserver.cpp +++ b/media/mediaserver/main_mediaserver.cpp @@ -36,6 +36,7 @@ #include "MediaPlayerService.h" #include "ResourceManagerService.h" #include "service/AudioPolicyService.h" +#include "MediaUtils.h" #include "SoundTriggerHwService.h" #include "RadioService.h" @@ -43,6 +44,11 @@ using namespace android; int main(int argc __unused, char** argv) { + limitProcessMemory( + "ro.media.maxmem", /* property that defines limit */ + SIZE_MAX, /* upper limit in bytes */ + 65 /* upper limit as percentage of physical RAM */); + signal(SIGPIPE, SIG_IGN); char value[PROPERTY_VALUE_MAX]; bool doLog = (property_get("ro.test_harness", value, "0") > 0) && (atoi(value) == 1); |