aboutsummaryrefslogtreecommitdiff
path: root/vm/alloc
Commit message (Collapse)AuthorAgeFilesLines
* Revert "Use MAP_FIXED in remapNewHeap"Ricardo Cerqueira2014-05-011-1/+1
| | | | | | | This reverts commit 462bc921aefe3b96e8cc7dae91e234b0e455966c, it breaks android.openglperf.cts.GlAppSwitchTest#testGlActivitySwitchingFast Change-Id: Ic153994859f678dbef4328bee5740e21beb735e0
* Revert "Revert "Use MAP_FIXED in remapNewHeap""Davor Bertovic2014-04-011-1/+1
| | | | | | This reverts commit 95d2bc928952165cd84aa0c5fe5f572b7ec2c807. Change-Id: I100b42df21048841aeae3adce67059e15e65315f
* Revert "Use MAP_FIXED in remapNewHeap"Davor Bertovic2014-03-301-1/+1
| | | | | | This reverts commit 798643be51d789aec8f7ad6c7dfb1ee01774babb. Change-Id: I07a2ac84028b8b9c14f69a9452e83560b22933b8
* Use MAP_FIXED in remapNewHeapPete Delaney2014-03-281-1/+1
| | | | | | | | The heap address must not change when it is remapped Change-Id: Ia44f178932e2afe8de3d4739e7085caae8568885 Signed-off-by: Pete Delaney <piet.delaney@imgtec.com> Signed-off-by: Chris Dearman <chris.dearman@imgtec.com>
* Merge branch 'kk_2.7_rb1.11' of git://codeaurora.org/platform/dalvik into ↵Steve Kondik2013-11-301-17/+43
|\ | | | | | | cm-11.0
| * dalvik/vm: Dalvik startup with a low memory footprintVijay Dandiga2013-11-171-17/+43
| | | | | | | | | | | | | | | | | | | | | | Initialize concurrentStartBytes and createMspace using HEAP_MIN_FREE. This helps save Android framework memory after boot. This is for low memory targets only(<=512MB RAM & hdpi resolution) Also, set TARGET_ARCH_LOWMEM in the BoardConfig.mk file of a device for this patch to take effect. Change-Id: Ia1dec6e89ef8285f1e12644bcdc6ca17a15e37a2
* | Merge branch 'kk_2.7_rb1.9' of git://codeaurora.org/platform/dalvik into cafSteve Kondik2013-11-111-7/+51
|\| | | | | | | Change-Id: I885fab2470352d0a625c9946d0d5c9111486b713
| * Dump hprof when app encounters Out of memoryBiswajit Paul2013-10-311-5/+52
| | | | | | | | | | | | | | | | | | | | | | These changes will only dump application hprof when debug property "dalvik.debug.oom" is set to -1. CRs-Fixed: 471156 Change-Id: I41fbbd5cdaa852cd5e8896186e9d3993688a9cb0 (cherry picked from commit eac7514a989e78b191fde100475b907427158b8d) (cherry picked from commit 63a1141f9bb9fc58beacdde1e8e24df82fe6e000)
| * GC triggering performance optimizationsWei Wang2013-10-312-8/+83
| | | | | | | | | | | | | | | | | | | | Copy the correct starting heap size at process init. Interfaces to set GC/managed heap parameters. Change-Id: I454b1985a3225d7dbdea9c5d4e6f0c9f5e24352e (cherry picked from commit ea59f91c8559dee1710f38a27db10f76f4753fea) (cherry picked from commit 12fc949d46e988ce6877ad4c60f5fc983c5dc202) (cherry picked from commit 73a1dac0b14ab5159453c2d696049e233e7476b0)
| * dalvik: dalvik device extension pack.Xin Qi2013-10-311-0/+5
| | | | | | | | | | | | | | | | | | Add support for customer device extension Change-Id: I0402a630ba212d1c5e81cda110f61210f7b60384 (cherry picked from commit 11499df326462bfe25890a35c6abbf019ff7784e) (cherry picked from commit e03b8f8da9cf4eef64cedf39ce9ca90d26ce5124) (cherry picked from commit fb360be406f35b9591f12c61936657f03cc5880f)
* | Unbreak building host modulesRicardo Cerqueira2013-11-061-0/+4
| | | | | | | | | | | | bionic is now a dependency for properties Change-Id: Icd406e639ca297244ab809f523c6830c2240d20b
* | Merge tag 'android-4.4_r1' into cm-11.0Ricardo Cerqueira2013-11-017-32/+238
|\| | | | | | | Android 4.4 Release 1.0
| * Fix native allocation tracking on Dalvik.Mathieu Chartier2013-08-232-6/+22
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Fixed issue where we had inverted logic when checking for pending exceptions. Changed the logic to not update the native allocation watermarks after concurrent GC since the finalizers may not have been run at this point. Copied over the test from ART for ensuring that it is working. Bug: 10444866 Change-Id: Ie26170f9c4703f11e993233cdc9c5f46396fca84
| * Fix broken card table asserts.Mathieu Chartier2013-08-082-13/+11
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We had an off by one error due to getting the card for the heap source limit. This is not a valid card when the heap is at maximum size, but doesn't need to be since we do less than comparison on it. Fixed another error where we didn't take into account the biased begin in an assert. Did a bit of refactoring by removing useless if statement. Fixes 061-out-of-memory. Bug: 8282011 Change-Id: I66e3026e7b98b738ecfbced101846ec9f184ab70 (cherry picked from commit ee903e174872edd0ecc6f1940c7412892cd49123)
| * Show size/alloc/free per Dalvik heap space in dumpsysHiroshi Yamauchi2013-07-311-1/+35
| | | | | | | | | | | | | | | | | | | | | | | | | | Add the heap size/alloc/free stats to the Dalvik heap space breakdown section in dumpsys meminfo. Also, now the zygote heap has a distict ashmem region name. Bug: 9532137 Bug: 8266259 (cherry picked from commit 3edfe0b32753309ad7dcccd894239cb0a8aefb85) Change-Id: I9b32727e4211f571a5205b6b7281958514d245d4
| * Backport native allocation tracking.Mathieu Chartier2013-07-164-0/+123
| | | | | | | | | | | | | | From: https://googleplex-android-review.googlesource.com/#/c/328818/ Change-Id: I5a930e629c5a2062f01f870b4a44dcd98cb4ffe9
| * Add low memory mode option.Mathieu Chartier2013-07-133-18/+53
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Added a low memory mode option which can be enabled by passing the flag "-XX:LowMemoryMode" to the VM. Changed dvmHeapSourceAlloc to use mspace_malloc and madvise page aligned regions of allocations back to the kernel if low memory mode is enabled. No measurable performance penalty on a benchmark which does 4 million object allocations. This seems to reduce the Dalvik total PSS by 10 - 15% on devices with large bitmaps (such as manta or flo). Another change is that cards are madvised instead of memset when cleared if low memory mode is enabled. This saves a minor amount of memory at the cost of having slightly more page faults. Change-Id: I0c850bc370ebabf4393bff1c47d3257b2f1518d2
* | Revert "Move verification of class access flags to libdex"Ricardo Cerqueira2013-11-011-38/+15
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | This reverts commit aa897b06230453519c4ec636f229c72ac0015897. Revert "Reject dex files that attempt to use unspecified class access flags" This reverts commit 2f824d3e4835479409724ea02d0a23114cd4ff81. Revert "If dalvik wants ASCII casing, it needs to ask for it." This reverts commit d91250308fc4c423d11955174c21566fa19df07c. Revert "JIT: Combine add with shift and offset for array load & store." This reverts commit a9ecd84e5f5423a1ba6bbb2bb9256b0dc382de44. Revert "JIT: Use rsb and shift in easy multiply." This reverts commit 25b94295a57290623e34882e7fd86ea10928a54e. Revert "Excessive JNI: Dump HPROF dump." This reverts commit 8d30a7402d48c4ffe2bf28ede78c6b3b52b15304. Revert "dalvik/vm: Dalvik startup with a low memory footprint" This reverts commit 15726c81059b74bf2352db29a3decfc4ea9c1428.
* | Disable Dalvik spam by defaultVladislav Koldobskiy2013-10-071-1/+1
| | | | | | | | | | | | Reverse the logic: use "dalvik.vm.debug.alloc=1" to see these lines. Change-Id: Id58de1dd09467c2327f76d37eeb926b712d6af52
* | dalvik/vm: Dalvik startup with a low memory footprintVijay Dandiga2013-08-131-15/+38
| | | | | | | | | | | | | | | | | | | | | | Initialize concurrentStartBytes and createMspace using HEAP_MIN_FREE. This helps save Android framework memory after boot. This is for low memory targets only(~512MB RAM & hdpi resolution) Also, set TARGET_ARCH_LOWMEM in the BoardConfig.mk file of a device for this patch to take effect. Change-Id: Ib164c5eaf3236fe2de2697e84de4ee85f8997e94
* | GC triggering performance optimizationsWei Wang2013-07-252-8/+83
| | | | | | | | | | | | | | Copy the correct starting heap size at process init. Interfaces to set GC/managed heap parameters. Change-Id: I454b1985a3225d7dbdea9c5d4e6f0c9f5e24352e
* | Add barriers for proper observation sequence.Xin Qi2013-07-251-0/+5
| | | | | | | | Change-Id: I5c2ef043920fe60c92304cd2c8a857a805b6e9af
* | debug: allow ability to hide GC freed lines in logcatTanguy Pruvot2013-07-241-1/+13
|/ | | | | | use setprop dalvik.vm.debug.alloc 0 to disable these noisy logs... Change-Id: I8692b941901b43d33ea9ee30c288a47b6a3be3b1
* Add systrace tracing for GC and thread suspension.Jamie Gennis2013-05-071-0/+29
| | | | | Bug: 8856374 Change-Id: I58420a14fb52eab6295381a4d8f2d59eacfe0473
* Work around a dalvik JDWP/GC deadlock.Elliott Hughes2013-04-171-0/+8
| | | | | | | | | | | Also add a few missing TEMP_FAILURE_RETRYs that can cause dalvik to incorrectly decide that the debugger connection has been broken. Bug: 8191824 (cherry picked from commit b680ae3140a789f182c26abf8df9645f7744113a) Change-Id: I92736a1ad2f06caba30506d05bfa59fccbeee834
* fix DDMS crashTim Murray2013-01-141-0/+4
| | | | Change-Id: Ic5edd3d9367db8570523e1380c3e6edfabeec2c0
* Allow max free size of heap to be configured.Ian Rogers2012-09-242-19/+35
| | | | | | | | | This allows the max free to be larger on devices with more memory and thereby avoid GCs (that may be more frequent due to larger bitmaps). b/6606849 Change-Id: I4063a303ea4be3c1f227259d699fb238a806451f
* Remove unnecessary compiler pragma.Ian Rogers2012-08-292-5/+0
| | | | | | | | | | With dlmalloc 2.8.6 the compiler pragmas to suppress warnings are not necessary. Remove unnecessary dlmalloc dl prefix #define. Depends upon: https://android-review.googlesource.com/42351 Change-Id: Idc45cee9342efec0aab63d5172b3308a0fca3c4f
* Merge "Fix for 6994917 GC is slower since JOO33B per FrameworkPerf test"Ian Rogers2012-08-242-12/+10
|\
| * Fix for 6994917 GC is slower since JOO33B per FrameworkPerf testMathieu Chartier2012-08-232-12/+10
| | | | | | | | | | | | | | | | | | | | | | Fixes the GC aspect of the regression in FrameworkTest for Gc. Large bitmap test seems to be unaffected. Changes are: We now have minimum sleep of 1ms instead of 10ms in dvmSuspendAll. Some heuristics to avoid doing extra GCs if an allocation waited for a concurrent Gc. Change-Id: I3797c7dc813e26bd1f7bb0a9dbe55eb70dd1c9c9
* | Trim pre-Zygote fork, fix under-estimate of heap limit.Ian Rogers2012-08-223-3/+32
|/ | | | | | | | | | | | | | | | | | | Card scanning uses dvmHeapSourceGetValue to scan from the heap base to the total foot print of the heap. Trimming the Zygote may lower the footprint of the heap by creating a hole in the middle. This hole is unaccounted for in the card scanning leading to missed dirty cards. This was a regression introduced by: https://android-review.googlesource.com/#/c/41728/ as it didn't #define MORECORE_CANNOT_TRIM 1 that was previously defined here: https://android-review.googlesource.com/#/c/41731/4/libcutils/mspace.c Introduce a notion of dvmHeapSourceGetLimit so that card scanning doesn't rely on footprint. Trim the heap before forking the Zygote. This change continues to enable morecore trimming of mspaces. Change-Id: I3f0b12371097f50a1f920cac25846ca08685e7ed
* Upgrade to dlmalloc 2.8.5.Ian Rogers2012-08-207-202/+316
| | | | | | | | | | | | Switch to using dlmalloc 2.8.5. Define mspace functionality directly using dlmalloc rather than taking from libcutils. Remove growth limit check in tryMalloc that only checks initial growth limit. Implement trimming at the end of the mspace. Depends upon: https://android-review.googlesource.com/41717 Change-Id: Ia2c6b50bdb0b0d5aae4b18deefbd1bf50dfa49d5
* Don't log "WAIT_FOR_CONCURRENT_GC blocked 0ms".Elliott Hughes2012-07-161-1/+3
| | | | | | | Stupid to spend more time logging than we spent waiting. (Highly visible in the zygote's preloading phase.) Change-Id: If2d6b6093b3bebae0887aa385745b7ed9225216b
* am bf11122d: Merge "Revert " Trim after explicit gc.""Elliott Hughes2012-06-113-8/+3
|\ | | | | | | | | * commit 'bf11122d175d1315783b313897ee8ecae63f0278': Revert " Trim after explicit gc."
| * Revert " Trim after explicit gc."Elliott Hughes2012-06-113-8/+3
| | | | | | This reverts commit ea4c6e57a48e08eacbf08520c64133175e7d5da0
* | am 89cf125c: Report GC pause times more accurately.Jeff Brown2012-05-301-9/+16
|\ \ | | | | | | | | | | | | * commit '89cf125cd95a7df3a713cb3d3d39a033304e474c': Report GC pause times more accurately.
| * | Report GC pause times more accurately.Jeff Brown2012-05-301-9/+16
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | Include the time that it actually took to pause or suspend threads in the reported time. Also report the amount of time that other threads spend blocked waiting for a concurrent GC to complete. Change-Id: I80af351c2dc3171fc7db48dbbb361f3d92bbca80
| * | Fix: Issue 26627: Dalvik Heap Trim timer value after GCSangWook Han2012-05-111-3/+3
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | dvmRelativeCondWait need millisecods not seconds. With this fix, trim will begins 5 seconds after concurrent GC Bug: http://code.google.com/p/android/issues/detail?id=26627 Bug: 6482868 Change-Id: I3802b48e345725fb78e4ef2c999dd243ef30a138
* | | am 3492e8ab: Merge " Trim after explicit gc."Elliott Hughes2012-05-113-3/+8
|\ \ \ | | |/ | |/| | | | | | | * commit '3492e8ab5939ebdbec642ad284bce015937e60d9': Trim after explicit gc.
| * | Trim after explicit gc.SangWook Han2012-05-113-3/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | On Gingerbread, dvmHeapSourceTrim() is called 5 seconds after every kind of GC. Current AOSP do trim only for concurrent GC. That makes OOM killer too busy. At least explicit GC need trim and in case of explicit GC, there are no need to delay 5 seconds before trim. Change-Id: I8fde8f773398bf20c674cfa6f686d7d745d56492
* | | am 07cfd74d: Merge " Fix: Issue 26627: Dalvik Heap Trim timer value after GC"Elliott Hughes2012-05-111-3/+3
|\| | | |/ |/| | | | | * commit '07cfd74d766d821196fa2451604af25cfa9767de': Fix: Issue 26627: Dalvik Heap Trim timer value after GC
| * Fix: Issue 26627: Dalvik Heap Trim timer value after GCSangWook Han2012-05-111-3/+3
| | | | | | | | | | | | | | | | | | dvmRelativeCondWait need millisecods not seconds. With this fix, trim will begins 5 seconds after concurrent GC Bug: http://code.google.com/p/android/issues/detail?id=26627 Change-Id: I3802b48e345725fb78e4ef2c999dd243ef30a138
| * DO NOT MERGE Further refinement of card table clearAndy McFadden2011-11-091-7/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're currently using memset() to clear cards out to the growth limit, which on a device configured for 48MB/128MB process caps means we're sitting on 384KB or 1MB of pages. We can reduce that substantially. This change attempts to reduce the memset() length to the currently active portion of the card table, based on the placement of objects in the "live objects" bitmap. This should avoid faulting in card pages that we don't actually need. This is suboptimal when parts of the card table are used briefly and then ignored for a while. An alternative implementation, which uses madvise(DONTNEED) aggressively, is also included (#ifdefed out). Bug 5567332 (cherry-pick from master) Change-Id: I6b181de20a0c8b6307acaebbc5d6dac20422f25d
* | Replace malloc() followed by memset() to zero with calloc()Iliyan Malchev2012-02-162-10/+5
| | | | | | | | | | | | | | | | | | | | | | Bionic's calloc() is smart enough to not zero out memory if it gets that memory from an anonyous mmap. Thus, if we use malloc for large allocations, we cause unnecessary memory duplication by following the malloc() with a memset(). An even better approach would be to replace the known large calloc() calls with dvmAllocRegion() allocation. Change-Id: Id308f541c9a040d5929bf991b6c2bfdefb823c3c
* | Rename (IF_)LOGE(_IF) to (IF_)ALOGE(_IF) DO NOT MERGESteve Block2012-01-088-21/+21
| | | | | | | | | | | | | | | | | | See https://android-git.corp.google.com/g/#/c/157220 Also fix an occurrence of LOGW missed in an earlier change. Bug: 5449033 Change-Id: I2e3b23839e6dcd09015d6402280e9300c75e3406
* | Rename (IF_)LOGW(_IF) to (IF_)ALOGW(_IF) DO NOT MERGESteve Block2012-01-064-7/+7
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/157065 Bug: 5449033 Change-Id: Ia5d301248024df26c2a29dabdfe738e39ec87c82
* | Rename (IF_)LOGI(_IF) to (IF_)ALOGI(_IF) DO NOT MERGESteve Block2012-01-052-14/+14
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/156801 Bug: 5449033 Change-Id: Ic558031c75b3702d90eb78bd730501ae5d3c077b
* | Rename (IF_)LOGD(_IF) to (IF_)ALOGD(_IF) DO NOT MERGESteve Block2012-01-034-7/+7
| | | | | | | | | | | | | | See https://android-git.corp.google.com/g/156016 Bug: 5449033 Change-Id: Ic663376d1ad6a6cb14bf81405ad9afd247cf2f60
* | Further refinement of card table clearAndy McFadden2011-11-091-7/+41
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | We're currently using memset() to clear cards out to the growth limit, which on a device configured for 48MB/128MB process caps means we're sitting on 384KB or 1MB of pages. We can reduce that substantially. This change attempts to reduce the memset() length to the currently active portion of the card table, based on the placement of objects in the "live objects" bitmap. This should avoid faulting in card pages that we don't actually need. This is suboptimal when parts of the card table are used briefly and then ignored for a while. An alternative implementation, which uses madvise(DONTNEED) aggressively, is also included (#ifdefed out). Bug 5567332 Change-Id: I7663ae7d15d0aaa8158deed5e331bf05333da6bb
* | Fix reporting of initial pause timeAndy McFadden2011-11-071-1/+1
| | | | | | | | | | | | | | | | | | The "rootEnd" time was being captured before dvmClearCardTable() was called. Bug 5567332 Change-Id: I5499f1648c3e41296c18fa5d95d834c2d2853e8f