History log of /art/test/916-obsolete-jit/src/Main.java
Revision Date Author Comments
f6c66c3348a2b64e4b6472827e31f711142006e3 17-Dec-2015 Kevin Brodsky <kevin.brodsky@linaro.org> Tests: never use System.err

Always print stack traces to System.out, and replace all
System.err.println()'s with System.out.println().

Follow-up of https://android-review.googlesource.com/#/c/187020/ and
https://android-review.googlesource.com/#/c/407032/.

Test: m test-art-host
m test-art-target
Change-Id: I9ab9cd955a8db25b2ec6673790e5bc924f62c88a
351ba5aaa52216536a82486acb91dcf779b00478 21-Apr-2017 Alex Light <allight@google.com> Remove unneeded shims and jni binding code

Bug: 37522517
Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: I8670ab1bbf4b906c47d4edb2ad7349f9505da94a
(cherry picked from commit 21b0c29e6a7e5a9d2d31db27aea2fa8615d56f3b)
Merged-In: Iaeba26b9554dee5cba6ef04e91d4a2664c7e94d0
21b0c29e6a7e5a9d2d31db27aea2fa8615d56f3b 21-Apr-2017 Alex Light <allight@google.com> Remove unneeded shims and jni binding code

Bug: 37522517
Test: ./test/testrunner/testrunner.py --host -j40
Change-Id: I8670ab1bbf4b906c47d4edb2ad7349f9505da94a
4eec3c5a28ce1592ff53b11270fd430d1217aa07 14-Apr-2017 Alex Light <allight@google.com> More refactor for JVMTI redefinition run tests (1/3)

Does as much as possible without making git get confused about the
provenance of files. Follow up CLs will move the files into the
appropriate places.

NOTE: BROKEN WITHOUT A FOLLOW-UP CL TO CHANGE FILE NAMES!

Bug: 32072923
Test: None
Change-Id: I1d66b42a5041d4ea1a0e8eaa61d55422a507e26f
4665167ddc34008dfa78a2873685fe7a98772eab 07-Apr-2017 Andreas Gampe <agampe@google.com> ART: More refactor for JVMTI run tests (1/3)

Put (most) tests into a new package and give them dedicated
class names (Test9XY).

NOTE: BROKEN WITHOUT A FOLLOW-UP CL TO CHANGE DIRECTORY STRUCTURE
AND FILE NAMES!

Bug: 32072923
Test: None
Change-Id: I291b0543f7782914e446a74f0d9037020c88e5b5
5ecd5b7765e781b132c5de028bfac90255dc52b6 30-Jan-2017 Alex Light <allight@google.com> Make wording of comment more precise.

Test: mma -j40 test-art-host
Change-Id: I2501d183669d2981f230876366e472acbe02cfb4
4ba388a39333b13f0f3bcde826444c77fd7166ed 27-Jan-2017 Alex Light <allight@google.com> Remove Deoptimization code from class transformation.

Since we removed the current_method from the compiled code we don't
need to deoptimize all frames anymore.

This is a partial revert of commit dba614810.

Bug: 32369913
Bug: 33630159

Test: ART_TEST_TRACE=true \
ART_TEST_JIT=true \
ART_TEST_INTERPRETER=true mma -j40 test-art-host

Change-Id: I44a6dd89e1d96bd8c82c2c24a2f42fef023a80be
53ae7803b20650b7f36c0564dbcdc3115f399cba 20-Jan-2017 Andreas Gampe <agampe@google.com> ART: Refactor TI tests

Add a helper to explicitly bind native methods in a given class,
using dlsym to look up C functions in the local environment.

Add a callback helper that hooks VmInit and calls the above function
on the Main class. Use the callback helper before calling the test-
defined or shared minimal OnLoad function.

Add a binder helper that immediately binds the Main functions. Use
the helper before calling the test-defined OnAttach function.

Remove System.loadLibrary from tests. Instead rely on the explicit
binding.

In preparation for making the tests functional on device.

Test: m test-art-host
Change-Id: I12e68f070e8c6331e51d3a1fa4b9ebd8f28dfce6
4e03c5286321f5285369c9e2bd3813288f5cf2dc 14-Jan-2017 Alex Light <allight@google.com> Revert "Revert "Try really hard for JIT in test 916""

We were looping forever waiting for the entrypoint to be switched
despite the JIT being disabled by the tracing instrumentation.

This reverts commit ca4feac9484464a858990ca588398fceead55354.

Reason for revert: Problem with ensureJitCompiled fixed

Test: ART_TEST_TRACE=true \
ART_TEST_OPTIMIZING=false \
ART_TEST_INTERPRETER=true \
ART_USE_READ_BARRIER=false \
mma -j40 test-art-host-run-test-916-obsolete-jit

Change-Id: I11f1e3f6cf65f90509a1ba66625a7988f3d94af6
ca4feac9484464a858990ca588398fceead55354 13-Jan-2017 Alex Light <allight@google.com> Revert "Try really hard for JIT in test 916"

This reverts commit a64fa43345124eb7891b9d6a6258f6ed0cbd1504.

Reason for revert: makes test-art-host-run-test-debug-prebuild-interpreter-relocate-trace-cms-checkjni-picimage-npictest-ndebuggable-916-obsolete-jit fail

Test: Treehugger
Change-Id: Idce6fc9310fe85ae62dd19da1e978299951c19ee
a64fa43345124eb7891b9d6a6258f6ed0cbd1504 09-Jan-2017 Alex Light <allight@google.com> Try really hard for JIT in test 916

Sometimes we would fail to jit stuff due to high load. This makes us
try even harder to JIT so we won't fail in these scenarios.

Test: mma -j40 test-art-host
Test: stress --cpu 60 &; while ./test/run-test --host 916; do ; done

Change-Id: Ic944582bf021f119b8bc3f135af508ed8a8586c4
dba61481035b7944173181ec9ee02aea41dd0e29 21-Dec-2016 Alex Light <allight@google.com> Revert "Revert "Revert "Revert "Basic obsolete methods support""""

A GetDeclaringClass()->GetDexCache() got inserted during the
merge/review process meaning that we would try to access incorrect
dex-cache in obsolete methods in some situations.

Also when using tracing we would loop forever (or at least until an
OOM error) in test 916 due to tracing forcing InterpretOnly mode
meaning methods would never be jitted.

Bug: 32369913
Bug: 33630159

Test: ART_TEST_TRACE=true \
ART_TEST_JIT=true \
ART_TEST_INTERPRETER=true mma -j40 test-art-host

This reverts commit f6abcda293b115a9d7d8a26376ea2dcf2d1dc510.

Change-Id: I0773bfcba52e3cd51a83be815c6a50c189558f48
f6abcda293b115a9d7d8a26376ea2dcf2d1dc510 21-Dec-2016 Nicolas Geoffray <ngeoffray@google.com> Revert "Revert "Revert "Basic obsolete methods support"""

Fails in tracing mode

Bug: 32369913
Bug: 33630159

This reverts commit ce77fc0e7f60a15354bb20c356537cbf8b53b722.

Change-Id: I1bdcf6ad467f2e31f9c5d0c3c987b90a4f5efc69
ce77fc0e7f60a15354bb20c356537cbf8b53b722 15-Dec-2016 Alex Light <allight@google.com> Revert "Revert "Basic obsolete methods support""

This reverts commit b81a9840b44480bfeacd74b8d9f51e06f295411d.

There were 2 issues with the original CL's test 916-obsolete-jit that
caused it to sporadically fail.

First, when checking if we had jitted the function under test in
916-obsolete-jit we failed to check to see if the function 'doCall',
which is used to work-around bugs in our deoptimization & compilation
systems, had also been jitted.

In the case where the 'sayHi' function had been jitted but the
'doCall' function had not we would (correctly) fail to redefine the
'Transform' class since we would not be able to deoptimize the 'sayHi'
function since it is under a quick_to_interpreter_bridge (runtime)
frame.

Secondly, the function Main.isInterpretedFunction was incorrect and
would always return false, regardless of the actual state of the
function. This would cause the test to fail as the
quick_to_interpreter_bridge frame prevented deoptimization of the
obsoleted function. Usually the warm-up period was enough to make sure
the methods were jitted anyway but this was not guaranteed.

Both of these problems become more likely to occur on systems with
more cpu contention such as the buildbots.

Test: stress --cpu 60 &; while ./test/run-test --host --jit 916; do ; done

Reason for revert: Fixed bug in test that was causing failures.

Original Tests:

Test: ./test/run-test --host 914
Test: ./test/run-test --host 915
Test: ./test/run-test --host 916
Test: mma -j40 test-art-host
Test: ART_TEST_JIT=true \
ART_TEST_INTERPRETER=true mma -j40 test-art-host
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64 --no-jit

Bug: 32369913
Bug: 33630159

Change-Id: If1a92e47b90965a7dc21c5826185debe62bd1554
b81a9840b44480bfeacd74b8d9f51e06f295411d 15-Dec-2016 Alex Light <allight@google.com> Revert "Basic obsolete methods support"

This reverts commit d8936da27b792d1ca02e59c92456a1a53c7b9905.

Reason for revert: Some sort of race in JIT

Change-Id: Ibb4e520bb0721d6d7aa2c841a52eb5baff07740e
d8936da27b792d1ca02e59c92456a1a53c7b9905 29-Nov-2016 Alex Light <allight@google.com> Basic obsolete methods support

Add support for executing obsolete methods following redefinitions.
This support includes methods that have been jitted. This does not add
any additional validity checks to our redefinition functions.

Note using work-arounds to ensure 916 works pending some fixes to the
compiler, deoptimizer, or both.

Test: ./test/run-test --host 914
Test: ./test/run-test --host 915
Test: ./test/run-test --host 916
Test: mma -j40 test-art-host
Test: ART_TEST_JIT=true \
ART_TEST_INTERPRETER=true mma -j40 test-art-host
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64
Test: ./art/tools/run-jdwp-tests.sh --mode=host --variant=X64 --no-jit

Bug: 32369913
Bug: 33630159

Change-Id: I78ef95f484146f1fb93c37fc50f56575bdab2432