| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Eagerly try to map at an address when it doesn't overlap with
the ART known maps.
Reduces time spent creating the heap on N9 from ~100ms to ~10ms.
Bug: 20727525
Change-Id: Ie8982ca9d1f3158104b2b53b992c3a28841fc443
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit 18a1827a159f1b235f3fcc934f428059185f550e.
Bug: 21333911
Change-Id: I8cb96efbf7151b238f3ee137a938b20ddfaf0ebc
|
| |/
|/|
| |
| |
| |
| |
| |
| | |
Prevents deadlocks by not waiting longer than 250ms for finalizers
to complete.
Bug: 21544853
Change-Id: I57b2f7ae8b74185922eb3c15ba0ab71a4d2348aa
|
| |
| |
| |
| |
| |
| | |
Bug: 20727525
Change-Id: I91a74b793fb9eda8ed580244a6a5fd313ef2eb27
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The optimization uses the maps_ field to skip over regions which we
know wont be large enough for the request.
Reduces time to create heap from 500-700ms to 100ms on N9.
Bug: 20727525
Change-Id: I4fa92d58c2e135ba31a03ababff46669089bb542
|
|/
|
|
|
|
| |
Also some cleanup.
Change-Id: I9c1a8093e6356f1b52e332009429b77fa5c1d448
|
|
|
|
|
|
|
| |
Also fix a slight memory leak in LargeObjectMapSpace.
Bug: 20674158
Change-Id: I2416df484e5b84a8c5cc0b5664c8cb102dc235f6
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This refactor allows the parent thread to allocate the JNIEnvExt
for the child (with a fallback in place in Init). This allows to
throw an OOME in CreateNativeThread instead of aborting in the
child.
Bug: 21291279
Change-Id: Iccc1a5c202999f5bfacec706d9833e53135ba2fa
|
|\ \
| |/
|/| |
|
| |
| |
| |
| |
| |
| |
| | |
Previously we omitted these fields.
Bug: 20726205
Change-Id: I81c55919a4bd015bc0a4e7259a41a05dab534e11
|
|/
|
|
|
|
|
|
|
|
| |
The ClassLinker cache speeds up FindArrayClass requests, but all
entries are roots. It is possible that an entry is a non-image
class when creating the boot image, artificially keeping the
class around.
Bug: 21596650
Change-Id: Ief9b439945d0e293a3cb5dcddfeb189b5e174f06
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| | |
Hprof uses this mode to not cause thread suspend timeouts if GC tries
while the hprof dump is running.
Bug: 21063989
Change-Id: Ic6304620afd1489719a7e0e4299f829c90fe27cc
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Move back to 32 bit method IDs, add a bijective map for method IDs.
Also some cleanup.
Bug: 19264997
Change-Id: Icdd36591df53ff975d30b9000cfe67d3ae8c51d5
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Now we print the stack trace of the method which tried to remove the
non-JNI local reference.
Added test, example output:
Attempt to remove non-JNI local reference, dumping thread
"main" prio=5 tid=1 Runnable
| group="main" sCount=0 dsCount=0 obj=0x12c2b400 self=0xf878af28
| sysTid=32662 nice=0 cgrp=default sched=0/0 handle=0xf73df700
| state=R schedstat=( 154297228 636505 121 ) utm=5 stm=10 core=11 HZ=100
| stack=0xff6f2000-0xff6f4000 stackSize=7MB
| held mutexes= "mutator lock"(shared held)
native: #00 pc 00455a7f /out/host/linux-x86/lib/libartd.so (art::DumpNativeStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&, int, char const*, art::ArtMethod*, void*)+191)
native: #01 pc 00425d79 /out/host/linux-x86/lib/libartd.so (art::Thread::DumpStack(std::__1::basic_ostream<char, std::__1::char_traits<char> >&) const+473)
native: #02 pc 0028c555 /out/host/linux-x86/lib/libartd.so (art::IndirectReferenceTable::Remove(unsigned int, void*)+421)
native: #03 pc 003319c8 /out/host/linux-x86/lib/libartd.so (art::JNI::DeleteLocalRef(_JNIEnv*, _jobject*)+56)
native: #04 pc 0012db14 /out/host/linux-x86/lib/libartd.so (art::CheckJNI::DeleteRef(char const*, _JNIEnv*, _jobject*, art::IndirectRefKind)+292)
native: #05 pc 00122176 /out/host/linux-x86/lib/libartd.so (art::CheckJNI::DeleteLocalRef(_JNIEnv*, _jobject*)+54)
native: #06 pc 00005724 /out/host/linux-x86/lib/libarttest.so (Java_Main_removeLocalObject+36)
native: #07 pc 00004d6e /tmp/test-32506/dalvik-cache/x86/tmp@mathieuc@test-32506@004-JniTest.jar@classes.dex (void Main.removeLocalObject(java.lang.Object)+130)
at Main.removeLocalObject(Native method)
at Main.testRemoveLocalObject(Main.java:118)
at Main.main(Main.java:37)
Bug: 20683465
Change-Id: I56b99c77ae7020cabf1aaeb1d5317b1d5ba940e5
|
|
|
|
|
|
|
| |
Fixes occasional crash in dex2oat.
Bug: 19264997
Change-Id: Icb1a323d8c44fa40309486e17aec56d2c2588e67
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Optimizing + quick tests are passing, devices boot.
TODO: Test and fix bugs in mips64.
Saves 16 bytes per most ArtMethod, 7.5MB reduction in system PSS.
Some of the savings are from removal of virtual methods and direct
methods object arrays.
Bug: 19264997
(cherry picked from commit e401d146407d61eeb99f8d6176b2ac13c4df1e33)
Change-Id: I622469a0cfa0e7082a2119f3d6a9491eb61e3f3d
Fix some ArtMethod related bugs
Added root visiting for runtime methods, not currently required
since the GcRoots in these methods are null.
Added missing GetInterfaceMethodIfProxy in GetMethodLine, fixes
--trace run-tests 005, 044.
Fixed optimizing compiler bug where we used a normal stack location
instead of double on ARM64, this fixes the debuggable tests.
TODO: Fix JDWP tests.
Bug: 19264997
Change-Id: I7c55f69c61d1b45351fd0dc7185ffe5efad82bd3
ART: Fix casts for 64-bit pointers on 32-bit compiler.
Bug: 19264997
Change-Id: Ief45cdd4bae5a43fc8bfdfa7cf744e2c57529457
Fix JDWP tests after ArtMethod change
Fixes Throwable::GetStackDepth for exception event detection after
internal stack trace representation change.
Adds missing ArtMethod::GetInterfaceMethodIfProxy call in case of
proxy method.
Bug: 19264997
Change-Id: I363e293796848c3ec491c963813f62d868da44d2
Fix accidental IMT and root marking regression
Was always using the conflict trampoline. Also included fix for
regression in GC time caused by extra roots. Most of the regression
was IMT.
Fixed bug in DumpGcPerformanceInfo where we would get SIGABRT due to
detached thread.
EvaluateAndApplyChanges:
From ~2500 -> ~1980
GC time: 8.2s -> 7.2s due to 1s less of MarkConcurrentRoots
Bug: 19264997
Change-Id: I4333e80a8268c2ed1284f87f25b9f113d4f2c7e0
Fix bogus image test assert
Previously we were comparing the size of the non moving space to
size of the image file.
Now we properly compare the size of the image space against the size
of the image file.
Bug: 19264997
Change-Id: I7359f1f73ae3df60c5147245935a24431c04808a
[MIPS64] Fix art_quick_invoke_stub argument offsets.
ArtMethod reference's size got bigger, so we need to move other args
and leave enough space for ArtMethod* and 'this' pointer.
This fixes mips64 boot.
Bug: 19264997
Change-Id: I47198d5f39a4caab30b3b77479d5eedaad5006ab
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Correctly return null for the method when a hard failure is
encountered. Also improve logging for order failures. Add a
regression test.
Bug: 20224106
Change-Id: I6e08202617147378b204af169308b67fc69f92c6
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Add support for a special managed handler in sigchainlib that
will be called as the first user handler.
Use this support for native bridge v2. Extend test 115-native-bridge
to test the functionality.
Bug: 20217701
(cherry picked from commit 03c2cc89428914adf52229d6a3867eef6127911a)
Change-Id: I78cc01fbdabe169154ff6b94c9f3ddb95b5c7448
|
| |
| |
| |
| |
| | |
Bug: 21173514
Change-Id: I369806644879fffc01bdc123d81a551e6eedf465
|
| |
| |
| |
| |
| |
| |
| |
| | |
Bug: 19333589
(cherry picked from commit d5e5a0e61b5b1fe0aaa7edc25a08adebd5a92353)
Change-Id: If394a678ef6271c1119dac3f959773f23e789c56
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
The floating point registers f20-f31 are callee-save in the Mips
ABI. While the managed code does not touch them, they need to be
saved when throwing an exception, so that they will be correctly
restored and not smashed.
Bug: 21266656
(cherry picked from commit a4e0e67611f54180694e0807d6599c1132269b6c)
Change-Id: Ia96d52ce7fb41bf604da1797ce4d7a703e292415
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
If we attempt to single-step in a thread that is not running Java
code, there is no current method on the stack. So we need to check
for null before trying to decode debug info.
Bug: 21320157
(cherry picked from commit 52f5f93873ec244320e05b033243c5c7a3ae40e2)
Change-Id: I961108071dd58a23f6327370b00c35a4cabe0aa7
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
Was missing updates to globals and weak globals.
Bug: 21288130
Bug: 21440428
Change-Id: I5f801f68b61f6b066b441b92ace367e6ba434789
|
|/ /
| |
| |
| |
| |
| |
| |
| |
| |
| | |
This will let libc/linker know which sdk version
is targeted by the app. This is needed to work around
incorrect DT_NEEDED entries in old apps.
Bug: http://b/21364029
Change-Id: I2f2907104106aac6c8831381ca171dc0302e6a9d
(cherry picked from commit 15efde2badd80b8b124f8e1444165e4afbac17f0)
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Fix incorrect usage of kBadGprBase to avoid misleading and
ambiguous data in crash investigations.
Bug: 21266656
(cherry picked from commit 5b09ea0af468d9232cf725ac7f7e73c145892c5c)
Change-Id: Ia4fc60a5d61471c7a6c8fd0545a897ace43d90be
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Bring back reinterpret_cast<>s removed by
https://android-review.googlesource.com/151309 .
They are needed for mac builds.
Bug : 13925192
(cherry picked from commit 0eb42511405f3919572a480a009426dfb776cfb5)
Change-Id: If6e0cdbadcc84a046abe03d7eca5cccd0a50d141
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Required for gettimeofday(). Not needed in utils.cc .
Bug: 13925192
(cherry picked from commit ce39200492e2715a94d96fbd39fa42b46115c255)
Change-Id: If40694965b84605819cac11a7937821aa74db82b
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
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
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Setting a breakpoint on a catch statement in the source actually
installs the breakpoint on a DEX move-exception instruction. At this
point, an exception is pending in the current thread.
The issue is no exception must be pending in the current thread to
report the breakpoint event. This is required to be able to call JNI
functions to create JDWP ids.
This CL fixes it by clearing the pending exception before reporting
event and restore it after reporting the event.
Bug: 21382373
(cherry picked from commit de48aa6708a3d5dacf7db3d64965e23261fb15d3)
Change-Id: Ie107eb47b6f2559c4fa5297f4033e07baad06f38
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
- Handlerize proxy_class which is live across multiple allocation
points in ClassLinker::CreateProxyClass().
- In ClassLinker::CreateProxyClass(), insert a proxy class into the
class table before creating ArtFields for it (and update it later in
LinkClass()) because the field roots (ArtField::declaring_class_)
won't be updated by GC unless the class is in the class table. If GC
happens before they are updated by FixupTemporaryDeclaringClass()
from LinkClass(), FixupTemporaryDeclaringClass() may not update the
field roots correctly because the old class may already be moved but
the fields roots may not. Reduce a window of time where the fields
roots could be stale.
- In ClassLinker::LinkClass(), directly wrap a new class in a handle
to avoid a window of time where new_class may be potentially stale.
- Print more diagnostic info about the holder of the field upon a mark
sweep invalid ref crash.
- Add an additional sanity check in Field::GetArtField().
Bug: 20557050
Change-Id: I9ad32d304922da96b7e1fad262d97de21cbac776
|
|\ \ |
|
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
In cases of very high load and/or bad scheduling, the verifier may
take longer than the threshold duration to verify an empty method.
The LargeMethod detection needs to accept that the code_item may
be null.
Bug: 21364300
Change-Id: Iceff3e4688cc1a5fe7a836f7a9bf6c49a392b618
|
|\ \ \
| |/ /
|/| |
| | | |
mnc-dev
|
| | |
| | |
| | |
| | |
| | |
| | |
| | | |
This reverts commit aafcfca5fe545365ef377fff2897b8a908f03e71.
Bug: 21333911
Change-Id: Ibbc6b1be8bebc1d0ab9c5955b34eb89f40577baa
|
| |/
|/|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
Expose the UnstartedRuntime implementation functions as private static
methods of a class. Add a gtest that can invoke these functions. Add
sample tests for String and Memory.
Bug: 21173514
(cherry picked from commit 799681b176ad25437ce2849639f54f610dcbf684)
Change-Id: Ib5bde6347fafaf7607c642542ea7d5938ff4b1df
|
|\| |
|
| |
| |
| |
| |
| | |
Bug: 21333911
Change-Id: I9832526a6d2996aadb459e3ec0930cbaf151478a
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
libmono uses JNI AllocObject and CallNonvirtualVoidMethod to create and
initialize a string instead of using the recommended NewObject. This
change adds an intercept to change the String.<init> call to a
StringFactory call instead. Then, it uses the object id of the original
string object referrer and maps it to the result of the StringFactory.
Bug: 21288130
Change-Id: Ib4db402c178bc37188d5c5faf30b6e4fdc747b17
|
|\ \ |
|
| |/
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
First check for both direct and virtual methods in the current class,
then move to the parent.
Optimize registration by checking first whether the current method
under test is native. This slows down registering implementations
in parent classes. Add a CheckJNI warning for this.
Add a run-test to check the behavior. Fix host comparison testing.
Bug: 19569721
(cherry picked from commit 3f1dc56914177993b1b018bf21ce7d39d7feecda)
Change-Id: I61e77117d96310632aad123d7f1279d0f834dc99
|
|\ \
| |/
|/| |
|