d9911eeca13f609c885e0f6a5ce81af9b6340bfa |
|
27-Mar-2017 |
Andreas Gampe <agampe@google.com> |
ART: Clean up field initialization Add explicit field initialization to default value where necessary. Also clean up interpreter intrinsics header. Test: m Change-Id: I7a850ac30dcccfb523a5569fb8400b9ac892c8e5
|
b62f2e6f3f8d66b3231ecec14ea9365733371b39 |
|
23-Mar-2016 |
Hiroshi Yamauchi <yamauchi@google.com> |
Add RosAlloc stats dump. For better understanding of the RosAlloc space. (cherrypick commit 565c2d9bce43c430d4267c82f5702160d971e712) Bug: 27744947 Bug: 9986565 Change-Id: I8309761a68fbc143bbcd8458a9194085aace7c3e
|
565c2d9bce43c430d4267c82f5702160d971e712 |
|
23-Mar-2016 |
Hiroshi Yamauchi <yamauchi@google.com> |
Add RosAlloc stats dump. For better understanding of the RosAlloc space. Bug: 27744947 Bug: 9986565 Change-Id: I02a8028b9728f6862e5e78588a368b8029bb5c1a
|
b5e31f3dd5f792ff60225a4daa048a57d261cdd0 |
|
19-Feb-2016 |
Hiroshi Yamauchi <yamauchi@google.com> |
Fix rosalloc issues with valgrind. The issue was that the MemoryToolMallocSpace constructor was explicitly undefining the tail of the mem map, and when RosAlloc expanded the space beyond the initial size, it gets errors from using the zero but undefined (due to the above undefining) memory content. RosAlloc zeroes memory on free (as opposed to zeroes on allocation) and relied on the zero-initialized (hence defined in terms of valgrind) mem map at the initialization time. Change RosAlloc so that it does explicitly zeroes the entire mem map at the initialization time and it does not rely on the zero-initialized of the mem map. Also, avoid explicitly changing the valgrind state in the MemoryToolMallocSpace constructor, which happens after the allocator is initialized because that may interfere with the allocator internal initialization. Bug: 27156726 Bug: 9986565 Change-Id: I3b36d2d987c25ce9ff5213278109c425f480b0d9
|
7ed9c561048d79083b6d0576c71a986a3123bca6 |
|
03-Feb-2016 |
Hiroshi Yamauchi <yamauchi@google.com> |
Use 8-byte increment bracket sizes for rosalloc thread local runs. Very small space savings (< 1%) after device boot and up to 10% allocation speedup. Some minor cleanup. Bug: 9986565 Change-Id: I51d791c4674d6944fe9a7ee78537ac3490c1a02c
|
dc412b6f49a65774b7af654f65cbff619cb7d85a |
|
15-Oct-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
Revert "Revert "Implement rosalloc fast path in assembly for 32 bit arm."" With a heap poisoning fix. This reverts commit cf91c7d973f3b2f491abc61d47c141782c96d46e. Bug: 9986565 Change-Id: Ia72edbde65ef6119e1931a77cc4c595a0b80ce31
|
cf91c7d973f3b2f491abc61d47c141782c96d46e |
|
15-Oct-2015 |
Nicolas Geoffray <ngeoffray@google.com> |
Revert "Implement rosalloc fast path in assembly for 32 bit arm." Tentative. Looks like heap poisoning breaks with this change. bug: 9986565 This reverts commit e6316940db61faead36f9642cce137d41fc8f606. Change-Id: I5c63758221464fe319315f40ae79c656048faed0
|
e6316940db61faead36f9642cce137d41fc8f606 |
|
08-Oct-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
Implement rosalloc fast path in assembly for 32 bit arm. Measurements (N5, ms) BinaryTrees: 1702 -> 987 (-42%) MemAllocTest: 2480 -> 2270 (-8%) Bug: 9986565 Change-Id: I460af3626ad724078463d27cf74a94b7ff7468c5
|
31bf42c48c4d00f0677c31264bba8d21618dae67 |
|
24-Sep-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
Use free lists instead of bitmaps within rosalloc runs. Speedups (CMS GC/N5) BinaryTrees: 2008 -> 1694 ms (-16%) MemAllocTest: 2303 -> 2076 ms (-10%) TODO: Add assembly fast path code. Bug: 9986565 Change-Id: I9dd7cbfd8e1ae083a399e70abaf2064a959f24fa
|
90443477f9a0061581c420775ce3b7eeae7468bc |
|
17-Jul-2015 |
Mathieu Chartier <mathieuc@google.com> |
Move to newer clang annotations Also enable -Wthread-safety-negative. Changes: Switch to capabilities and negative capabilities. Future work: Use capabilities to implement uninterruptible annotations to work with AssertNoThreadSuspension. Bug: 20072211 Change-Id: I42fcbe0300d98a831c89d1eff3ecd5a7e99ebf33
|
1e13374baf7dfaf442ffbf9809c37c131d681eaf |
|
20-May-2015 |
Evgenii Stepanov <eugenis@google.com> |
Generalize Valgrind annotations in ART to support ASan. Also add redzones around non-fixed mem_map(s). Also extend -Wframe-larger-than limit to enable arm64 ASan build. Change-Id: Ie572481a25fead59fc8978d2c317a33ac418516c
|
41b175aba41c9365a1c53b8a1afbd17129c87c14 |
|
19-May-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Clean up arm64 kNumberOfXRegisters usage. Avoid undefined behavior for arm64 stemming from 1u << 32 in loops with upper bound kNumberOfXRegisters. Create iterators for enumerating bits in an integer either from high to low or from low to high and use them for <arch>Context::FillCalleeSaves() on all architectures. Refactor runtime/utils.{h,cc} by moving all bit-fiddling functions to runtime/base/bit_utils.{h,cc} (together with the new bit iterators) and all time-related functions to runtime/base/time_utils.{h,cc}. Improve test coverage and fix some corner cases for the bit-fiddling functions. Bug: 13925192 (cherry picked from commit 80afd02024d20e60b197d3adfbb43cc303cf29e0) Change-Id: I905257a21de90b5860ebe1e39563758f721eab82
|
80afd02024d20e60b197d3adfbb43cc303cf29e0 |
|
19-May-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Clean up arm64 kNumberOfXRegisters usage. Avoid undefined behavior for arm64 stemming from 1u << 32 in loops with upper bound kNumberOfXRegisters. Create iterators for enumerating bits in an integer either from high to low or from low to high and use them for <arch>Context::FillCalleeSaves() on all architectures. Refactor runtime/utils.{h,cc} by moving all bit-fiddling functions to runtime/base/bit_utils.{h,cc} (together with the new bit iterators) and all time-related functions to runtime/base/time_utils.{h,cc}. Improve test coverage and fix some corner cases for the bit-fiddling functions. Bug: 13925192 Change-Id: I704884dab15b41ecf7a1c47d397ab1c3fc7ee0f7
|
3481ba2c4e4f3aa80d8c6d50a9f85dacb56b508b |
|
13-Apr-2015 |
Vladimir Marko <vmarko@google.com> |
ART: Clean up includes. Reduce dependencies to improve incremental build times. Break up circular dependency involving class_linker-inl.h. Change-Id: I4be742c5c2b5cd9855beea86630fd68aab76b0db
|
4460a84be92b5a94ecfb5c650aef4945ab849c93 |
|
09-Mar-2015 |
Hiroshi Yamauchi <yamauchi@google.com> |
Rosalloc thread local allocation path without a cas. Speedup on N4: MemAllocTest 3044 -> 2396 (~21% reduction) BinaryTrees 4101 -> 2929 (~26% reduction) Bug: 9986565 Change-Id: Ia1d1a37b9e001f903c3c056e8ec68fc8c623a78b
|
3f3c6c030db14e47d3022f00403f46240623f339 |
|
20-Nov-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Tune rosalloc buffer sizes. We now use one-page buffers for size brackets 4-7, instead of two-page buffers, and the first 8 size brackets for thread-local allocations, instead of 11. No slowdown observed with MemAllocTest, EvaluateAndApplyChanges, and BinaryTrees. (cherrypick commit c4cd95fa37b7138a0fa26d07c235aa409542aecd) Bug: 18377775 Change-Id: I311f3adf9cab660d258833b17df7e6d905f73c72
|
c4cd95fa37b7138a0fa26d07c235aa409542aecd |
|
20-Nov-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Tune rosalloc buffer sizes. We now use one-page buffers for size brackets 4-7, instead of two-page buffers, and the first 8 size brackets for thread-local allocations, instead of 11. No slowdown observed with MemAllocTest, EvaluateAndApplyChanges, and BinaryTrees. Bug: 18377775 Change-Id: Ie1bb46bcf5d3729197e48e26a27da4cc39dd807e
|
d7576328811e5103e99d31f834a857522cc1463f |
|
25-Oct-2014 |
Andreas Gampe <agampe@google.com> |
ART: Fix valgrind Allow ValgrindMallocSpace wrapper for RosAlloc.Requires refactoring, as ValgrindMallocSpace was bound to the signature of DlMallocSpace. Also turn of native stack dumping when running under Valgrind to work around b/18119146. Ritzperf before and after Mean 3190.725 3082.475 Standard Error 11.68407 10.37911 Mode 3069 2980 Median 3182.5 3051.5 Variance 16382.117 12927.125 Standard Deviation 127.99264 113.69751 Kurtosis 1.1065632 0.3657799 Skewness 0.9013805 0.9117792 Range 644 528 Minimum 2991 2928 Maximum 3635 3456 Count 120 120 Bug: 18119146 Change-Id: I25558ea7cb578406011dede9d3d0bdbfee4ff4d5
|
277ccbd200ea43590dfc06a93ae184a765327ad0 |
|
04-Nov-2014 |
Andreas Gampe <agampe@google.com> |
ART: More warnings Enable -Wno-conversion-null, -Wredundant-decls and -Wshadow in general, and -Wunused-but-set-parameter for GCC builds. Change-Id: I81bbdd762213444673c65d85edae594a523836e5
|
6a3c1fcb4ba42ad4d5d142c17a3712a6ddd3866f |
|
31-Oct-2014 |
Ian Rogers <irogers@google.com> |
Remove -Wno-unused-parameter and -Wno-sign-promo from base cflags. Fix associated errors about unused paramenters and implict sign conversions. For sign conversion this was largely in the area of enums, so add ostream operators for the effected enums and fix tools/generate-operator-out.py. Tidy arena allocation code and arena allocated data types, rather than fixing new and delete operators. Remove dead code. Change-Id: I5b433e722d2f75baacfacae4d32aef4a828bfe1b
|
59c07060a6fbb93e455b44f00098cafb8e7e26cc |
|
10-Oct-2014 |
Ian Rogers <irogers@google.com> |
Work around ICE bugs with MIPS GCC and O1. Also, work around GCC warning bugs where array accesses with explicit bounds checks are flagged as being out-of-bounds. Significantly, clean-up the HandleScope so the array accesses don't appear out-of-bounds at compile time. Change-Id: I5d66567559cc1f97cd0aa02c0df8575ebadbfe3d
|
13735955f39b3b304c37d2b2840663c131262c18 |
|
08-Oct-2014 |
Ian Rogers <irogers@google.com> |
stdint types all the way! Change-Id: I4e4ef3a2002fc59ebd9097087f150eaf3f2a7e08
|
58553c7fd89ce69857017322444265469bb6af62 |
|
17-Sep-2014 |
Mathieu Chartier <mathieuc@google.com> |
Add allocation tracking allocators to ROSAlloc Used to monitor native memory usage, results are approximately 12-100KB memory per app. Change-Id: If5a46cd8d543851948a8cb69487f3044965b44ce
|
e63db27db913f1a88e2095a1ee8239b2bb9124e8 |
|
16-Jul-2014 |
Ian Rogers <irogers@google.com> |
Break apart header files. Create libart-gtest for common runtime and compiler gtest routines. Rename CompilerCallbacksImpl that is quick compiler specific. Rename trace clock source constants to not use the overloaded profiler term. Change-Id: I4aac4bdc7e7850c68335f81e59a390133b54e933
|
f37a88b8e6db6c587fa449a12e40cb46be1689fc |
|
10-Jul-2014 |
Zuo Wang <zuo.wang@intel.com> |
ART: Compacting ROS/DlMalloc spaces with semispace copy GC Current semispace copy GC is mainly associated with bump pointer spaces. Though it squeezes fragmentation most aggressively, an extra copy is required to re-establish the data in the ROS/DlMalloc space to allow CMS GCs to happen afterwards. As semispace copy GC is still stop-the-world, this not only introduces unnecessary overheads but also longer response time. Response time indicates the time duration between the start of transition request and the start of transition animation, which may impact the user experience. Using semispace copy GC to compact the data in a ROS space to another ROS(or DlMalloc space to another DlMalloc) space solves this problem. Although it squeezes less fragmentation, CMS GCs can run immediately after the compaction. We apply this algorithm in two cases: 1) Right before throwing an OOM if -XX:EnableHSpaceCompactForOOM is passed in as true. 2) When app is switched to background if the -XX:BackgroundGC option has value HSpaceCompact. For case 1), OOMs are significantly delayed in the harmony GC stress test, with compaction ratio up to 0.87. For case 2), compaction ratio around 0.5 is observed in both built-in SMS and browser. Similar results have been obtained on other apps as well. Change-Id: Iad9eabc6d046659fda3535ae20f21bc31f89ded3 Signed-off-by: Wang, Zuo <zuo.wang@intel.com> Signed-off-by: Chang, Yang <yang.chang@intel.com> Signed-off-by: Lei Li <lei.l.li@intel.com> Signed-off-by: Lin Zang <lin.zang@intel.com>
|
654dd48e2230e16bfaa225decce72b52642e2f78 |
|
09-Jul-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Improve the OOME fragmentation message. Change-Id: I390d3622f8d572ec7e34ea6dff9e1e0936e81ac1
|
a5b5c55c8585b7ce915f0c7e1f66d121a7f7a078 |
|
24-Jun-2014 |
Mathieu Chartier <mathieuc@google.com> |
Add notion of released vs empty pages to ROSAlloc. A notion of released vs empty pages helps get a more accurate view of how much memory was released during heap trimming. Otherwise we get that the same pages possibly get madvised multiple times without getting dirtied. Also enabled heap trimming of rosalloc spaces even when we care about jank. This is safe to do since the trimming process only acquires locks for short periods of time. Dalvik PSS reduces from ~52M to ~50M after boot on N4. Bug: 9969166 Change-Id: I4012e0a2554f413d18efe1a0371fe18d1edabaa9
|
a1c1c71e24c93a720bbf13de129c75a9a0bde37a |
|
24-Jun-2014 |
Mathieu Chartier <mathieuc@google.com> |
Use reader lock of bulk free lock when not freeing. Should help reduce contention observed in systrace. Change-Id: Iadb81728d4ba797c3a68acea795b15d7f212e89b
|
c5f17732d8144491c642776b6b48c85dfadf4b52 |
|
06-Jun-2014 |
Ian Rogers <irogers@google.com> |
Remove deprecated WITH_HOST_DALVIK. Bug: 13751317 Fix the Mac build: - disable x86 selector removal that causes OS/X 10.9 kernel panics, - madvise don't need does zero memory on the Mac, factor into MemMap routine, - switch to the elf.h in elfutils to avoid Linux kernel dependencies, - we can't rely on exclusive_owner_ being available from other pthread libraries so maintain our own when futexes aren't available (we can't rely on the OS/X 10.8 hack any more), - fix symbol naming in assembly code, - work around C library differences, - disable backtrace in DumpNativeStack to avoid a broken libbacktrace dependency, - disable main thread signal handling logic, - align the stack in stub_test, - use $(HOST_SHLIB_SUFFIX) rather than .so in host make file variables. Not all host tests are passing on the Mac with this change. dex2oat works as does running HelloWorld. Change-Id: I5a232aedfb2028524d49daa6397a8e60f3ee40d3
|
700a402244a1a423da4f3ba8032459f4b65fa18f |
|
20-May-2014 |
Ian Rogers <irogers@google.com> |
Now we have a proper C++ library, use std::unique_ptr. Also remove the Android.libcxx.mk and other bits of stlport compatibility mechanics. Change-Id: Icdf7188ba3c79cdf5617672c1cfd0a68ae596a61
|
507dfdd147c97bfbadebfd63584d094b6a4e7b47 |
|
16-May-2014 |
Ian Rogers <irogers@google.com> |
Compatibility layer to transition from UniquePtr to std::unique_ptr. Use ART_WITH_STLPORT (enabled for the target) to cause the use of UniquePtr, for the host switch to std::unique_ptr. For now the type remains called UniquePtr. Make dalvik compile with clang on the host, move its build to C++11. Change-Id: I5ba8d2757904bc089ed62047ea03de3c0853fb12
|
5fcfa7d9d97246f7eb48a74356cb00ec2cbc0181 |
|
15-May-2014 |
Ian Rogers <irogers@google.com> |
Move RoS allocator to use unordered_set. Work-around existing stlport issues for the target. This will go away when the target is using libc++. Change-Id: I8f213ecd9dc7d93d17f4a0d7e84182c12af6ca1b
|
0651d41e41341fb2e9ef3ee41dc1f1bfc832dbbb |
|
29-Apr-2014 |
Mathieu Chartier <mathieuc@google.com> |
Add thread unsafe allocation methods to spaces. Used by SS/GSS collectors since these run with mutators suspended and only allocate from a single thread. Added AllocThreadUnsafe to BumpPointerSpace and RosAllocSpace. Added AllocThreadUnsafe which uses current runs as thread local runs for a thread unsafe allocation. Added code to revoke current runs which are the same idx as thread local runs. Changed: The number of thread local runs in each thread is now the the number of thread local runs in RosAlloc instead of the number of size brackets. Total GC time / time on EvaluateAndApplyChanges. TLAB SS: Before: 36.7s / 7254 After: 16.1s / 4837 TLAB GSS: Before: 6.9s / 3973 After: 5.7s / 3778 Bug: 8981901 Change-Id: Id1d264ade3799f431bf7ebbdcca6146aefbeb632
|
59e676038383cbbf5997601bc16b04b8d1cdca68 |
|
26-Apr-2014 |
Andreas Gampe <agampe@google.com> |
Rosalloc: fix signature for 64b Change-Id: I56df1df0118a0aa1584e51fb574902f7eb88cd80
|
73d1e17b3afc7d5e56184f90bf819dc64956448a |
|
12-Apr-2014 |
Mathieu Chartier <mathieuc@google.com> |
Enable reading page map without lock in RosAlloc::BulkFree Enabling this flag greatly reduces how much time was spent in the GC. It was not done previously since it was regressing MemAllocTest. With these RosAlloc changes, the benchmark score no longer regresses after we enable the flag. Changed Run::AllocSlot to only have one mode of allocation. The new mode is finding the first free bit in the bitmap. This was previously the slow path but is now the fast path. Some optimizations which enabled this include always having the alloc bitmap bits which correspond to invalid slots be set to 1. This prevents us from needing a bound check since we will never end up allocating there. Changed revoking thread local buffer to point to an invalid run. The invalid run is just a run which always has all the allocation bits set to 1. When a thread attempts to do a thread local allocation from here it will always fail and go slow path. This eliminates the need for a null check for revoked runs. Changed zeroing of memory to happen during free, AllocPages should always return zeroed memory. Added prefetching which happens when we allocate a run. Some refactoring to reduce duplicated code. Ergonomics changes: Changed kStickyGcThroughputAdjustment to 1.0, this helps reduce GC time. Measurements (3 samples per benchmark): Before: MemAllocTest scores: 3463, 3445, 3431 EvaluateAndApplyChanges score | total GC time Iter 1: 3485, 23.602436s Iter 2: 3434, 22.499882s Iter 3: 3483, 23.253274s After: MemAllocTest scores: 3495, 3417, 3409 EvaluateAndApplyChanges score | total GC time: Iter 1: 3375, 17.463462s Iter 2: 3358, 16.185188s Iter 3: 3367, 15.822312s Bug: 8788501 Bug: 11790317 Bug: 9986565 Change-Id: Ifd273a054824028dabed27c07c081dde1816f93c
|
8585bad7be19ee4901333f7d02d1d4d3f04877d4 |
|
12-Apr-2014 |
Mathieu Chartier <mathieuc@google.com> |
Return bytes freed from RosAlloc. There was a problem with how RosAlloc space sweeping worked caused by using the object size in the FreeList call, this won't work well with class unloading since the object's class may be freed before the object. Bug: 13989231 Change-Id: I3df439c312310720fd34249334dec85030166fe9
|
d9a88de76de4c81ad75340b824df64a68c739351 |
|
07-Apr-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Implement rosalloc page trimming without suspending threads. Also, making it more efficient by not going through the chunks smaller than the page size by not using InspectAll(). Change-Id: I79ceb0374cb8aba5f6b8dde1afbace9af98b6cff
|
3c79a30cc6eeed11b80e61119595b7a586b36435 |
|
03-Feb-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Fix a race condition in RosAlloc. Fix a race condition in RosAlloc between RosAlloc::BulkFree() and RosAlloc::RevokeThreadLocalRuns() with regard to bulk_free_bit_map. (Cherry-pick commit 70f60042558e0a766e98f2aaefbf80596ace4d53) Bug: 13192845 Bug: 12592026 Change-Id: I21afe8f9f3ad4166762d2bbfa0a6ae9484d8b12b
|
c93c530efc175954160c3834c93961a1a946a35a |
|
21-Mar-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Revoke rosalloc thread-local buffers at the checkpoint. In the mark sweep collector, rosalloc thread-local buffers were revoked during the pause. Now, they are revoked at the thread checkpoint, as opposed to during the pause, which appears to help reduce the pause time. In Ritz MemAllocTest, the average sticky pause time went down ~20% (925 us -> 724 us). Bug: 13394464 Bug: 9986565 Change-Id: I104992a11b46d59264c0b9aa2db82b1ccf2826bc
|
661974a5561e5ccdfbac8cb5d8df8b7e6f3483b8 |
|
09-Jan-2014 |
Mathieu Chartier <mathieuc@google.com> |
Fix valgrind gtests and memory leaks. All tests pass other than image_test which passes if some bad reads are disabled (buzbee working on this). Change-Id: Ifd6b6e3aed0bc867703b6e818353a9f296609422
|
26d69ffc0ebc98fbc5f316d8cd3ee6ba5b2001ac |
|
27-Feb-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Decrease lock uses in RosAlloc::BulkFree(). Read rosalloc page map entries without a lock. Disabled for now. This change speeds up Ritz MemAllocTest by ~25% on host and reduces the GC sweep time, but somehow slows it down by ~5% on N4, which is why it's disabled for now. TODO: look into the slowdown on N4 more. Bug: 8262791 Bug: 11790317 Change-Id: I936bbee9cfbd389e70d6343503bf0923865d2a2c
|
b48b9eb6d181a1f52e2e605cf26a21505f1d46ed |
|
01-Mar-2014 |
Ian Rogers <irogers@google.com> |
Fix clang to compile and run host tests. Don't use the computed goto interpreter with clang 3.4 as it causes compilation to hang. Avoid inclusion of LLVM_(HOST|DEVICE)_BUILD_MK except for with portable as it sets clang incompatible cflags. Most fixes are self-evident, for the quick dex file method inliner the enums were being used with ostreams, so fix the enums and operator out python script to allow this. Note this change effects portable but this is untestable as portable was broken by ELF file and mc linker changes. Change-Id: Ia54348f6b1bd3f76d3b71c6e8c5f97626386b903
|
6fac447555dc94a935b78198479cce645c837b89 |
|
26-Feb-2014 |
Ian Rogers <irogers@google.com> |
Make allocations report usable size. Work-in-progress to allow arrays to fill usable size. Bug: 13028925. Use C++11's override keyword on GCC >= 2.7 to ensure that we override GC and allocator methods. Move initial mirror::Class set up into a Functor so that all allocated objects have non-zero sizes. Use this property to assert that all objects are never larger than their usable size. Other bits of GC related clean-up, missing initialization, missing use of const, hot methods in .cc files, "unimplemented" functions that fail at runtime in header files, reducing header file includes, move valgrind's space into its own files, reduce number of array allocation routines. Change-Id: Id5760041a2d7f94dcaf17ec760f6095ec75dadaa
|
a4adbfd44032d70e166e6f18096bbbed05a990ba |
|
05-Feb-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
RosAlloc verification. If enabled, RosAlloc verification checks the allocator internal metadata and invariants to detect bugs, heap corruptions, and race conditions. Added runtime options for enabling and disabling it. Enable it for the debug build. Bug: 9986565 Bug: 12592026 Change-Id: I923742b87805ae839f1549d78d0d492733da6a58
|
70f60042558e0a766e98f2aaefbf80596ace4d53 |
|
03-Feb-2014 |
Hiroshi Yamauchi <yamauchi@google.com> |
Fix a race condition in RosAlloc. Fix a race condition in RosAlloc between RosAlloc::BulkFree() and RosAlloc::RevokeThreadLocalRuns() with regard to bulk_free_bit_map. Change-Id: I128917d5bdfe2dab604174ca4cbe228282578b8a Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com> Bug: 12592026
|
573f7d2d68e1838a0485e6b40d90c967526e00c2 |
|
17-Dec-2013 |
Hiroshi Yamauchi <yamauchi@google.com> |
Fix an array copy benchmark regression. Add different page release modes to rosalloc. Bug: 12064551 Change-Id: Ib837bbd1a2757741a4e2743e0a1272bf46a30252
|
3c2856e939f3daa7a95a1f8cb70f47e7a621db3c |
|
22-Nov-2013 |
Hiroshi Yamauchi <yamauchi@google.com> |
Inline RosAlloc::Alloc(). Bug: 9986565 Change-Id: I9bc411b8ae39379f9d730f40974857a585405fde
|
e5eedcb4a634246d1f912992853441f715d705cc |
|
18-Nov-2013 |
Hiroshi Yamauchi <yamauchi@google.com> |
Fix cpplint errors. Change-Id: I21f7423ebe69a77d456b0d318de73448489d2df4
|
cf58d4adf461eb9b8e84baa8019054c88cd8acc6 |
|
26-Sep-2013 |
Hiroshi Yamauchi <yamauchi@google.com> |
A custom 'runs-of-slots' memory allocator. Bug: 9986565 Change-Id: I0eb73b9458752113f519483616536d219d5f798b
|