| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
|
|
|
|
| |
This reverts commit 462bc921aefe3b96e8cc7dae91e234b0e455966c, it
breaks android.openglperf.cts.GlAppSwitchTest#testGlActivitySwitchingFast
Change-Id: Ic153994859f678dbef4328bee5740e21beb735e0
|
| |
|
|
|
|
| |
This reverts commit 95d2bc928952165cd84aa0c5fe5f572b7ec2c807.
Change-Id: I100b42df21048841aeae3adce67059e15e65315f
|
| |
|
|
|
|
| |
This reverts commit 798643be51d789aec8f7ad6c7dfb1ee01774babb.
Change-Id: I07a2ac84028b8b9c14f69a9452e83560b22933b8
|
| |
|
|
|
|
|
|
| |
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>
|
| |\
| |
| |
| | |
cm-11.0
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |\|
| |
| |
| | |
Change-Id: I885fab2470352d0a625c9946d0d5c9111486b713
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
Add support for customer device extension
Change-Id: I0402a630ba212d1c5e81cda110f61210f7b60384
(cherry picked from commit 11499df326462bfe25890a35c6abbf019ff7784e)
(cherry picked from commit e03b8f8da9cf4eef64cedf39ce9ca90d26ce5124)
(cherry picked from commit fb360be406f35b9591f12c61936657f03cc5880f)
|
| | |
| |
| |
| |
| |
| | |
bionic is now a dependency for properties
Change-Id: Icd406e639ca297244ab809f523c6830c2240d20b
|
| |\|
| |
| |
| | |
Android 4.4 Release 1.0
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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)
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| | |
From:
https://googleplex-android-review.googlesource.com/#/c/328818/
Change-Id: I5a930e629c5a2062f01f870b4a44dcd98cb4ffe9
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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.
|
| | |
| |
| |
| |
| |
| | |
Reverse the logic: use "dalvik.vm.debug.alloc=1" to see these lines.
Change-Id: Id58de1dd09467c2327f76d37eeb926b712d6af52
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| | |
Copy the correct starting heap size at process init.
Interfaces to set GC/managed heap parameters.
Change-Id: I454b1985a3225d7dbdea9c5d4e6f0c9f5e24352e
|
| | |
| |
| |
| | |
Change-Id: I5c2ef043920fe60c92304cd2c8a857a805b6e9af
|
| |/
|
|
|
|
| |
use setprop dalvik.vm.debug.alloc 0 to disable these noisy logs...
Change-Id: I8692b941901b43d33ea9ee30c288a47b6a3be3b1
|
| |
|
|
|
| |
Bug: 8856374
Change-Id: I58420a14fb52eab6295381a4d8f2d59eacfe0473
|
| |
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
| |
Change-Id: Ic5edd3d9367db8570523e1380c3e6edfabeec2c0
|
| |
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
| |
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
|
| |\ |
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| |/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
|
|
|
|
|
| |
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
|
| |
|
|
|
|
|
| |
Stupid to spend more time logging than we spent waiting. (Highly visible
in the zygote's preloading phase.)
Change-Id: If2d6b6093b3bebae0887aa385745b7ed9225216b
|
| |\
| |
| |
| |
| | |
* commit 'bf11122d175d1315783b313897ee8ecae63f0278':
Revert " Trim after explicit gc."
|
| | |
| |
| | |
This reverts commit ea4c6e57a48e08eacbf08520c64133175e7d5da0
|
| |\ \
| | |
| | |
| | |
| | | |
* commit '89cf125cd95a7df3a713cb3d3d39a033304e474c':
Report GC pause times more accurately.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |\ \ \
| | |/
| |/|
| | |
| | | |
* commit '3492e8ab5939ebdbec642ad284bce015937e60d9':
Trim after explicit gc.
|
| | | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
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
|
| |\| |
| |/
|/|
| |
| | |
* commit '07cfd74d766d821196fa2451604af25cfa9767de':
Fix: Issue 26627: Dalvik Heap Trim timer value after GC
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| | |
See https://android-git.corp.google.com/g/157065
Bug: 5449033
Change-Id: Ia5d301248024df26c2a29dabdfe738e39ec87c82
|
| | |
| |
| |
| |
| |
| |
| | |
See https://android-git.corp.google.com/g/156801
Bug: 5449033
Change-Id: Ic558031c75b3702d90eb78bd730501ae5d3c077b
|
| | |
| |
| |
| |
| |
| |
| | |
See https://android-git.corp.google.com/g/156016
Bug: 5449033
Change-Id: Ic663376d1ad6a6cb14bf81405ad9afd247cf2f60
|
| | |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
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
|
| | |
| |
| |
| |
| |
| |
| |
| |
| | |
The "rootEnd" time was being captured before dvmClearCardTable()
was called.
Bug 5567332
Change-Id: I5499f1648c3e41296c18fa5d95d834c2d2853e8f
|