| Commit message (Collapse) | Author | Age | Files | Lines |
|
|
|
|
|
|
| |
The test compares outputted strings for some reason. Forgot to run
it earlier.
Change-Id: I9eed08350d0122614cb2e18ca7195e5dc0832da6
|
|\
| |
| |
| | |
stack." into dalvik-dev
|
| |
| |
| |
| |
| |
| |
| | |
Large objects weren't being added to allocation stack. This was
causing them to never be marked as live and therefore never freed.
Change-Id: Ie84e3cd7a417a89870752cb21bd7d562c3427284
|
|/
|
|
|
|
|
|
|
|
|
| |
We now dump the sum (total time) of each histogram as well as
previous stats. This is useful for the GC since the same split can
occur multiple times per GC iteration. Also did a few memory
optimizations by changing the map in the cumulative loggers
to be a set.
Bug: 11789200
Change-Id: I67bcc5384200924c8dc5d9eebcff077ce72b7e57
|
|
|
|
|
|
|
|
|
| |
Could not delete SetLength since it is required by
space_test.
Bug: 11747779
Change-Id: Icf1ead216b6ff1b519240ab0d0ca30d68429d5b6
|
|\ |
|
| |
| |
| |
| |
| | |
Bug: 9986565
Change-Id: Ibd2ba5e8b4fb7f2ed6c133a4b556a6dbb15a2f5e
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Adds support for switching entrypoints during runtime. Enables
addition of new allocators with out requiring significant copy
paste. Slight speedup on ritzperf probably due to more inlining.
TODO: Ensuring that the entire allocation path is inlined so
that the switch statement in the allocation code is optimized
out.
Rosalloc measurements:
4583
4453
4439
4434
4751
After change:
4184
4287
4131
4335
4097
Change-Id: I1352a3cbcdf6dae93921582726324d91312df5c9
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This CL moves single-step control into the Thread structure. This is stored in
Thread::single_step_control_ member. This allows to support single-stepping of
multiple threads at the same time.
Since each thread holds its single-step information, we no longer need to use
the breakpoint lock to support single-stepping. It helps reduce lock contention
on this lock while debugging.
All JDWP tests passed on the host and on the target with this CL.
Bug: 11667502
Change-Id: I886d5c8c625ca5a072803e296c32eec5f7e9e82d
|
|\ \ \
| |_|/
|/| |
| | | |
dalvik-dev
|
| | |
| | |
| | |
| | |
| | | |
Bug: 11569539
Change-Id: Ibc7a80df83470ffd726d73695a05f4938248f292
|
| | |
| | |
| | |
| | |
| | | |
Bug: 9986565
Change-Id: I485341d30a21704ddbc45d8f531ef5593a358bb5
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
In the InvalidateAllocator() function, DlMallocSpace and RosAllocSpace
both null out the underlying allocator pointer at the zygote fork time
so that new allocations won't accidentally happen in the zygote space
after a zygote fork. However, nulling out the only allocator pointer
would cause crashes in non-allocation uses such as GetFootprint() in
this particular crash. Fix this by creating a second pointer just for
the allocation purpose that gets nulled upon a InvalidateAllocator()
call while the original pointer keeps pointing to the allocator.
Change-Id: Ie751d9380db39baace9e25712a3824eec9a9969a
|
|\ \ \ \ |
|
| | |_|/
| |/| |
| | | |
| | | |
| | | |
| | | | |
Propagates the 'this_object' to InstrumentationListener::MethodUnwind callback.
Change-Id: I12561f1a611b8399b94e669f9b8a6eaaf1a58631
|
| | | |
| | | |
| | | |
| | | | |
Change-Id: I8a7209d92aeee853f6a4e9e9bb0e094c5acd5e05
|
| |/ /
|/| |
| | |
| | |
| | |
| | |
| | | |
I see lots of log lines "Parsing features " in tests. I assume this
isn't intended to be left there.
Change-Id: Icfcb5421ed72e86160c24230b1418de19e230376
|
| | |
| | |
| | |
| | | |
Change-Id: I21f7423ebe69a77d456b0d318de73448489d2df4
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | | |
Bug: 9986565
Change-Id: I0eb73b9458752113f519483616536d219d5f798b
|
|\ \ \ |
|
| |/ /
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Intrinsic methods should be treated as a special case of
inline methods. They should be detected early and used to
guide other optimizations. This CL rewrites the intrinsics
detection so that it can be moved to any compilation phase.
Change-Id: I4424a6a869bd98b9c478953c9e3bcaf1c6de2b33
|
|\ \ \
| |/ /
|/| | |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Static methods (except the <clinit>) all point to the resolution trampoline
to handle class initialization. When we enable instrumentation, we update the
entry point to the instrumentation stub. But doing so makes us miss the call
into the trampoline.
This CL fixes this issue by leaving the resolution trampoline. Once a method's
class is initialized, we update all its static methods' entry point. When
instrumentation is enabled, this entry point becomes the instrumentation entry
stub.
This also allows to post method enter events in the right order during static
invokes. First, we get into the trampoline which call the method's class
<clinit> method and post the corresponding "method enter" event. Then we get
into the instrumentation entry stub of the static method being called and post
the corresponding "method enter" event before getting into its code.
Bug: 11686442
Change-Id: I202db921225c8be0b2191074d09b0ba40f9248b2
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Avoid a race in pthread_join which causes us to free the memmap
stack before it is done being used.
Bug: 11693195
Change-Id: Ic453359cebc7395e10e83319aa25528b8d1f3882
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Refactored the reference queue processing to reside in the heap code.
This removes significant code duplication in the semispace and
marksweep garbage collectors.
Changed the soft reference behaviour to preserve all soft references
unless the GC requires them to be cleared to avoid an out of memory
error. It may be worth investigating a better heuristic in the
future to preserve soft references by LRU order.
Change-Id: I1f3ff5bd4b3c5149271f4bb4fc94ba199e2f9bc2
|
| | |
| | |
| | |
| | | |
Change-Id: I1850a2ff9225cfab8f896619c212b1b55f03ae94
|
|\ \ \
| | | |
| | | |
| | | | |
into dalvik-dev
|
| |/ /
| | |
| | |
| | |
| | |
| | | |
Bug: 11569468
Change-Id: I63d45427ded0937c3ab2456fe5cec22da5558e53
|
|\ \ \ |
|
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | |
| | | | |
Bug: 11670287.
We use pointers to uninitialized values for control-flow in the timing logger
code, add TODO comments to clean this up later.
Remove base namespace and other bits of tidying.
Change-Id: I1e6600a1e92f974c8f58f3a405a4e4abb4d9f80f
|
|/ / /
| | |
| | |
| | |
| | | |
Bug: 11670287
Change-Id: I0c11c710d03e08559e0032bf602cf7cf13c92da9
|
| |/
|/|
| |
| | |
Change-Id: Icaabb2061916daeaba66f1f012b6e79f7f3318e6
|
|\ \ |
|
| | |
| | |
| | |
| | | |
Change-Id: Ied7deb35c1f1d975ef44c7b425128e0349ee44b0
|
|/ /
| |
| |
| |
| |
| |
| | |
Caught by valgrind.
Bug: 11670287
Change-Id: Ia5feacd6780e8e32c7ed600b5908c0b7d7ed7343
|
|\ \
| | |
| | |
| | | |
dalvik-dev
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This makes valgrind happier.
Bug: 11670287
Change-Id: I957b94cdc177665e66b069e4d2b2b8d0a4b589c8
|
|\ \ \
| |_|/
|/| | |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
The zygote space's limit should be updated as
ContinuousSpace::HasAddress() uses the limit, instead of the end, as
the range end of the space
https://googleplex-android-review.git.corp.google.com/365173.
Bug: 11679102
Change-Id: Ie02a6b858145847e7ede76b6801ce0af5c71297d
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
We now allocate the thread pool worker stack using a MemMap. This
enables us to name the maps so that we get more descriptive output
for debugging leaks.
Appears to fix the mips build 5/5 successful clean-oat and builds.
This is probably since glibc caches up to 40 MB of thread stacks
before releasing them.
Change-Id: I1df2de50cb95838aa0d272a09807021404ba410c
|
|/
|
|
|
|
| |
We now print the reason that the mmap failed.
Change-Id: Ie515e4bba117c9ea1f4297abb826d32172bea962
|
|
|
|
|
|
| |
Missed a few things in mutex.cc.
Change-Id: I1c3acfc5faa2511490170199c03ab74c1f23022a
|
|
|
|
| |
Change-Id: Ia200e582b04c84973281e12331777351feb8a401
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The compacting collector is currently similar to semispace. It works by
copying objects back and forth between two bump pointer spaces. There
are types of objects which are "non-movable" due to current runtime
limitations. These are Classes, Methods, and Fields.
Bump pointer spaces are a new type of continuous alloc space which have
no lock in the allocation code path. When you allocate from these it uses
atomic operations to increase an index. Traversing the objects in the bump
pointer space relies on Object::SizeOf matching the allocated size exactly.
Runtime changes:
JNI::GetArrayElements returns copies objects if you attempt to get the
backing data of a movable array. For GetArrayElementsCritical, we return
direct backing storage for any types of arrays, but temporarily disable
the GC until the critical region is completed.
Added a new runtime call called VisitObjects, this is used in place of
the old pattern which was flushing the allocation stack and walking
the bitmaps.
Changed image writer to be compaction safe and use object monitor word
for forwarding addresses.
Added a bunch of added SIRTs to ClassLinker, MethodLinker, etc..
TODO: Enable switching allocators, compacting on background, etc..
Bug: 8981901
Change-Id: I3c886fd322a6eef2b99388d19a765042ec26ab99
|