OSDN Git Service
Mathieu Chartier [Wed, 2 Mar 2016 18:30:23 +0000 (10:30 -0800)]
Fix potential linear alloc memory leak
Previously, if we created a linear alloc for a class loader but
never created the class table, the linear alloc would never get
freed since it would have no corresponding ClassLoaderData.
Fixes valgrind-test-art-host-gtest-oat_test
Bug:
27384882
Bug:
22858531
(cherry picked from commit
5b83050affa6a3b1d3863c0b903f9d48fe4aefb2)
Change-Id: I71b650eac4e33212a7f03c43141db99e635a19ad
Mathieu Chartier [Thu, 3 Mar 2016 00:08:31 +0000 (16:08 -0800)]
Only visit app image classes in class loader
Only update dex cache arrays of added classes since the declaring
class is in image DCHECK fails for other classes in the class loader.
Also some cleanup to prevent app images leaving invalid state if
they get rejected.
Bug:
22858531
Bug:
27431418
(cherry picked from commit
6973100705716bffce3768a8a0908d7ca1d02ec1)
Change-Id: Ib05364c44f2b943e3341ef2b1dd43337833de143
Mathieu Chartier [Thu, 3 Mar 2016 03:23:17 +0000 (19:23 -0800)]
Add systrace to VerifyClass
Useful to see if verifier is preempting anything.
Bug:
27398183
Change-Id: I3e318d2c9c5cbc4254b3ffe8e6e8c7b98a0f2ef7
Calin Juravle [Thu, 3 Mar 2016 10:54:00 +0000 (10:54 +0000)]
Merge "Update GetDexOptNeeded to handle the different levels of compilation" into nyc-dev
Nicolas Geoffray [Wed, 2 Mar 2016 17:09:35 +0000 (17:09 +0000)]
Clear inline caches if a ProfilingInfo gets revived.
This avoids stalled class references.
Bug:
27398183
Bug:
23128949
Bug:
26846185
(cherry picked from commit
511e41b4ec2d378a5c434598ebd0b3d6136fff9d)
Change-Id: I5e33496859e65456d185cc09ca12736dd6414d77
Nicolas Geoffray [Wed, 2 Mar 2016 12:05:30 +0000 (12:05 +0000)]
Revert "Revert "Use the interpreter as a heartbeat for the JIT.""
Bug:
27398183
Bug:
23128949
Bug:
26846185
This reverts commit
a96917a6983a5abbe973255a3846fda549fb1657.
(cherry picked from commit
35122443e5f8606cc5a660ac32745a06aefb341b)
Change-Id: Ib02401c76bf28e1aac6bbce01f97ddd0373c1ba5
Calin Juravle [Thu, 18 Feb 2016 18:47:37 +0000 (18:47 +0000)]
Update GetDexOptNeeded to handle the different levels of compilation
extract-only or profile-guide oat files are considered up to date from
runtime perspective as they don't necessary need (re)compilation or
relocation. However, it is useful to return a more refined code to the
caller so that they can decide whether or not that's good enough.
For example, the package manager might decide to still compile a
previous extract-only and during profile guide compilation we should
always recompile even if we have an oat file.
Note that dex files compiled via ClassLoaders will still be fully
compiled.
This change introduces:
- a new key in the oat header kCompilationType to capture what type of
compilation has been made. Note tha the key might be missing. The
distinction is needed in order to avoid recompilation of a previous
fully compiled file during profile guide compilation analysis.
- a new argument to GetDexOptNeeded which tells the runtime to cast its
opinion whether or not the oat file is up to date relative to the
desired target type of compilation.
Bug:
27189430
Change-Id: Icd9794b1df6f6e21242e1dd1d5b5d064963dbbb7
Mathieu Chartier [Tue, 1 Mar 2016 02:13:38 +0000 (18:13 -0800)]
Fix allocation tracking race
Check if changed from uninstrumented to instrumented during GC for
alloc. If we changed, retry the allocation with kInstrumented = true.
Added stress test.
Bug:
27337759
(cherry picked from commit
eebc3af4453f5c1fb5fd80c710cfd49566080d28)
Change-Id: I8fa50975b558199fcf142c8555476053001ace50
Andreas Gampe [Tue, 1 Mar 2016 04:49:38 +0000 (20:49 -0800)]
Lower JIT thread priority
Modify the JIT thread to run at a lower priority in order to allow
UI-critical threads to get enough CPU time.
Bug:
27417985
Change-Id: I5b962a7970ae81dac9e01a8011128c538cd78e40
Calin Juravle [Tue, 1 Mar 2016 17:59:18 +0000 (17:59 +0000)]
Merge "Record foreign dex files loaded by the app in the profile" into nyc-dev
Calin Juravle [Wed, 24 Feb 2016 10:13:09 +0000 (10:13 +0000)]
Record foreign dex files loaded by the app in the profile
A foreign dex file is a file which is not owned by the app
(it's not part of its code paths or its private data directory).
When such a dex file is loaded by the app, the runtime will record
a marker in a dedicated profile folder (foreing_dex_profile_path).
The marker is just a file named after the canonical location of the
dex file where '/' is replaced by '@'.
The markers will be used by the system server system server to
decide if the apk should be fully or profile guide compiled.
Bug:
27334750
Bug:
26080105
Change-Id: If4fa8208be4e2f6f0b748b8a5417c4ae9c2d5df6
Mathieu Chartier [Sun, 28 Feb 2016 21:10:58 +0000 (13:10 -0800)]
Revert "Revert "Improve immune spaces logic""
Test was flaky due to missing guard page at the end of the region.
Bug:
27136196
This reverts commit
07dbbca0b42cb8da1811de8209b4a7d4becfc7b2.
(cherry picked from commit
032c0051eb47f1f62586602894e5833356f4f9ec)
Change-Id: I7f9fcb0785ec45aaeded8ed65b7fa1abcf798282
Nicolas Geoffray [Sat, 27 Feb 2016 11:30:25 +0000 (11:30 +0000)]
Revert "Improve immune spaces logic"
test is flaky. For example:
[ RUN ] ImmuneSpacesTest.MultiImage
art/runtime/gc/collector/immune_spaces_test.cc:351: Failure
Value of: space5->Limit()
Actual: 0xb6d72000
Expected: reinterpret_cast<uint8_t*>(spaces.GetLargestImmuneRegion().End())
Which is: 0xb6d93000
[ FAILED ] ImmuneSpacesTest.MultiImage (1076 ms)
Bug:
27136196
This reverts commit
17b8bce064fe4c0b29117abe489b7f8c2c950d43.
(cherry picked from commit
07dbbca0b42cb8da1811de8209b4a7d4becfc7b2)
Change-Id: I5da504491dc4ff5d665891df5c93d892790d990d
Nicolas Geoffray [Mon, 29 Feb 2016 16:55:49 +0000 (16:55 +0000)]
Merge "Forgot to initialize JIT memory use fields." into nyc-dev
Nicolas Geoffray [Mon, 29 Feb 2016 16:55:15 +0000 (16:55 +0000)]
Merge "Introduce partial code cache collection." into nyc-dev
Nicolas Geoffray [Mon, 29 Feb 2016 16:19:10 +0000 (16:19 +0000)]
Merge "Cleanup polymorphic inlining to the same target." into nyc-dev
Nicolas Geoffray [Mon, 29 Feb 2016 16:18:48 +0000 (16:18 +0000)]
Merge "Bug fix for polymorphic inlining." into nyc-dev
Nicolas Geoffray [Wed, 24 Feb 2016 17:18:25 +0000 (17:18 +0000)]
Forgot to initialize JIT memory use fields.
bug:
23128949
(cherry picked from commit
b0d220835f2ddc03510f17fcc4fb4c64b426a0f5)
Change-Id: Iea81925ebd0fd60fe58a972269313a98f93fdac5
Nicolas Geoffray [Thu, 25 Feb 2016 13:27:47 +0000 (13:27 +0000)]
Dump the number of OSR compiled code.
bug:
23128949
(cherry picked from commit
fcdd72941810f03460a8efca0c6255439be80c35)
Change-Id: I7f6c428511ee7fe346c665be8f02880bcc317cae
Nicolas Geoffray [Tue, 23 Feb 2016 13:56:43 +0000 (13:56 +0000)]
Introduce partial code cache collection.
It will collect code that is known unused (because it deoptimized),
and osr code.
bug:
26846185
(cherry picked from commit
8d37250f7b9a7839b11488f45a1842b025026f94)
Change-Id: Iffe87e356066a3f0bd28cb3df41c17bf2ac9ea0f
Nicolas Geoffray [Thu, 25 Feb 2016 16:17:54 +0000 (16:17 +0000)]
Cleanup polymorphic inlining to the same target.
- Don't do expensive lookups, just fetch the ArtMethods from the
imtable or vtable.
- Don't perform the optimization if we may end up in the conflicting
trampoline.
bug:
27398183
(cherry picked from commit
4f97a212b6ff801eb9f7f88a87f44e0584339cca)
Change-Id: Ia4007743ae00860f679f96f45eb14d26e6dc3fce
Nicolas Geoffray [Mon, 29 Feb 2016 11:46:58 +0000 (11:46 +0000)]
Bug fix for polymorphic inlining.
The code used to wrongly propagate try/catch information to
new blocks. Since it has the same logic as Hraph::InlineInto,
extract the code that updates loop and try/catch information
to blocks to a shared method.
bug:
27330865
bug:
27372101
bug:
27360329
(cherry picked from commit
a1d8ddfaf09545f99bc326dff97ab604d4574eb6)
Change-Id: Ice0373ec0a1c24d78121634a377f6f502e814cfb
Mathieu Chartier [Tue, 23 Feb 2016 03:32:16 +0000 (19:32 -0800)]
Improve immune spaces logic
We now properly include the largest continuous region with the most
image bytes. Oat bytes are considered as part of the region but are
not counted when comparing. This can result in more image bytes in
cases where large oat files were previously included for the immune
region.
Also added handling for adjacent oat files:
[image][image][oat][oat][space] will now properly be a single region.
Bug:
27136196
(cherry picked from commit
17b8bce064fe4c0b29117abe489b7f8c2c950d43)
Change-Id: Ic69489fef1ba72f735ee613d5416eeadc703c06e
Alex Light [Fri, 26 Feb 2016 23:41:30 +0000 (23:41 +0000)]
Merge "Support new JDWP InterfaceType.InvokeMethod command" into nyc-dev
Alex Light [Thu, 25 Feb 2016 00:35:59 +0000 (16:35 -0800)]
Support new JDWP InterfaceType.InvokeMethod command
This command is used to invoke static methods in interfaces.
(cherry picked from commit
4a28e1e4e02aa44aa6fd20e22d50f9d73f6279cc)
Bug:
27218415
Change-Id: Ie4dc1876a20567240267f309dc18f1aec2c1b4c2
Mathieu Chartier [Fri, 26 Feb 2016 21:07:19 +0000 (21:07 +0000)]
Merge "Add and use loaded class profiling" into nyc-dev
Andreas Gampe [Fri, 26 Feb 2016 20:58:51 +0000 (20:58 +0000)]
Merge "ART: Add unstarted-runtime functions" into nyc-dev
Mathieu Chartier [Thu, 10 Dec 2015 00:38:30 +0000 (16:38 -0800)]
Add and use loaded class profiling
Class profiling is a way to keep track of which classes are resolved.
From here the compiler can use this information to generate a smaller
app image.
TODO: Add tests for profile stuff.
Bug:
22858531
Change-Id: I91ccd686394cc2517512f66abb0e277f3d26d4da
Alex Light [Fri, 26 Feb 2016 00:13:54 +0000 (16:13 -0800)]
Add JNI tests for lambdas
(cherry picked from commit
e9d2ca237620b0af28eed9fef52b09bddebdbc6f)
Bug:
27259142
Change-Id: I2a1b31db85dc487c1e6a62609d4497c3a4d4d3a6
Dimitry Ivanov [Fri, 26 Feb 2016 18:03:54 +0000 (18:03 +0000)]
Merge "Simplify LoadNativeLibrary()" into nyc-dev
Nicolas Geoffray [Fri, 26 Feb 2016 10:02:05 +0000 (10:02 +0000)]
Merge "Revert "Preload public libraries on Runtime::Start()"" into nyc-dev
Sebastien Hertz [Thu, 25 Feb 2016 17:50:23 +0000 (18:50 +0100)]
Disable test 097-duplicate-method for investigation
Broekn by latest Jack release (1.2-a19)
Bug:
27358065
(cherry picked from commit
fc07555f6b8ce07b2c0897c6919597b53faa419d)
Change-Id: I13946fcd6cdf61645a4a60e619b343da8d9be341
Nicolas Geoffray [Fri, 26 Feb 2016 08:48:04 +0000 (08:48 +0000)]
Revert "Preload public libraries on Runtime::Start()"
Loading is done in app_process.
Bug: http://b/
27245894
This reverts commit
7bca74e53d3665bcd243d4e0277f6561c0c80271.
Change-Id: Ie2edbe88dea867fcd5cca109d279f1c19e4df6bb
Andreas Gampe [Mon, 22 Feb 2016 18:03:12 +0000 (10:03 -0800)]
ART: Add unstarted-runtime functions
Add more functions to allow compile-time initialization of
code.
Bug:
27248115
Change-Id: Iaf8d92deb73547ccd31c0d6dde68da3bc14c3985
Mathieu Chartier [Thu, 25 Feb 2016 21:52:10 +0000 (13:52 -0800)]
Add lz4hc image compression format
Smaller than lz4 and decompresses at the same speed. Compression is
a bit slower.
Example saves on old FB APK:
Uncompressed:
44748800 bytes
LZ4:
12443648 bytes
LZ4HC:
11055104 bytes
Generating the image slows down by ~1s per 20MB of image due to
slower compression. Decompression is about the same speed but there
should be a slight speedup since less data needs to be read from
flash.
Added test.
Bug:
22858531
(cherry picked from commit
a6e81ed4c185b7362cd5199ebe5507d00883a9b0)
Change-Id: Idd0bbe1ea45fc6ab75a42bfeb0ef250e8b3e2f1b
Mathieu Chartier [Thu, 25 Feb 2016 20:28:40 +0000 (12:28 -0800)]
Add a decompression scoped timing for image loading
Shows up in systrace.
Bug:
22858531
(cherry picked from commit
31317c319667cf1d7d0f61229ccb5e76f22606cf)
Change-Id: Id4997fb9abc28fa8c1dd1e78ff01234637b229d3
Dimitry Ivanov [Thu, 25 Feb 2016 00:39:57 +0000 (00:39 +0000)]
Merge "Preload public libraries on Runtime::Start()" into nyc-dev
Dimitry Ivanov [Mon, 22 Feb 2016 22:26:48 +0000 (14:26 -0800)]
Preload public libraries on Runtime::Start()
Preloading public libraries on Runtime::Start()
instead of doing it in native_loader c-tor
ensures that the libraries are loaded only for
binaries that are using Android Runtime, and not
just linking against libandroid_runtime or libart.
Loading public libraries on Runtime::Start()
also helps some apps to save startup time and space
by ensuring that all NDK libraries are loaded
and ready to use.
Bug: http://b/
27245894
Change-Id: I15679a72450f3d18a7dd503d0ae977cebcfd7f52
Dimitry Ivanov [Wed, 24 Feb 2016 21:33:33 +0000 (13:33 -0800)]
Simplify LoadNativeLibrary()
With ApplicationLoaders.getClassLoader() ensuring
linker-namespace initialization there is no longer
need for LoadNativeLibrary() and callers to pass
along namespace-specific information to art.
This change removes unnecessary parameters of such
calls.
Bug: http://b/
27189432
Bug: http://b/
22548808
Change-Id: I341d35a2d5195e634678b352f4361f8712984b69
Mathieu Chartier [Wed, 24 Feb 2016 18:09:23 +0000 (10:09 -0800)]
Add MapAnonymous handling for null error_str
We use MapAnonymous with null error_str for app image loading when
we want to fail quickly. Also avoid doing CheckNonOverlapping in
CheckMapRequest if error_msg is null. The result from
CheckNonOverlapping is unused and CheckNonOverlapping is slow since
it creates a backtrace map.
Bug:
22858531
Bug:
26746779
(cherry picked from commit
83723aedac536fd8a3cd6e1662dbd6260e576194)
Change-Id: I0ff03a778b36303aa1e256fe7238dece5b3bbfab
Calin Juravle [Tue, 23 Feb 2016 16:53:30 +0000 (16:53 +0000)]
Fix profman path for the gtest.
(cherry picked from commit
de4fb63be26cd561111cad4574cac5e0c2314d11)
Change-Id: If710aaf047b6f557abd0cebfe9169c58fcb248a6
Calin Juravle [Tue, 23 Feb 2016 12:00:03 +0000 (12:00 +0000)]
Revert "Revert "Add profman tool: responsible to process profiles""
This reverts commit
3da74687e42de7d33a8e75df9bd64374e650f75e.
(cherry picked from commit
2e2db786b8fbaa4dceb37603a4296b0b2aea4e9e)
Change-Id: I38086cc9de939bad33bcd13b1677e1626af61c29
Alex Light [Mon, 22 Feb 2016 21:43:29 +0000 (13:43 -0800)]
Make JNI work correctly with default methods.
Also adds some tests for JNI and DefaultMethods.
Bug:
27259142
Bug:
24618811
(cherry picked from commit
3612149aee482ab7a17da68b0ef5fef3879729a2)
Change-Id: I31222e3e41059d803be1dbb0f40e1144ac4bf457
Igor Murashkin [Sat, 20 Feb 2016 00:41:44 +0000 (16:41 -0800)]
image: Allow methods with code in another oat file to work correctly
This fixes an issue when classes with default methods are in the boot
image and are used by an app image.
Bug:
27315287
Change-Id: Iaa66848fc07a0c779bc6e047bd154e2a4b87e1c8
Nicolas Geoffray [Tue, 23 Feb 2016 13:52:01 +0000 (13:52 +0000)]
Don't allocate mspaces of less than a page.
Fixes jit tests in debug mode.
bug:
26846185
(cherry picked from commit
7ca4b77c98ffdf7a4db26fd9f84b2cfcc274c4aa)
Change-Id: I73d357ee47f532c3d7ae65ddacbd5c88170dfe1d
Nicolas Geoffray [Tue, 23 Feb 2016 11:12:17 +0000 (11:12 +0000)]
Merge remote-tracking branch 'goog/master' into nyc-dev
bug:
27173201
bug:
23128949
bug:
26846185
Change-Id: I7333734be71a83dc4808735ead80ae3a4dcd841d
Vladimir Marko [Tue, 23 Feb 2016 10:57:44 +0000 (10:57 +0000)]
Merge "Dex-wide ArenaPool scoping for AOT compilation" am:
e4c77b4d37
am:
c4199dff25
* commit '
c4199dff25d960878bde79bcc2ee676b080955c1':
Dex-wide ArenaPool scoping for AOT compilation
Nicolas Geoffray [Tue, 23 Feb 2016 10:57:27 +0000 (10:57 +0000)]
Merge "Add a new kReservedCapacity to decide when to start GC code." am:
08e992e41e
am:
075bf626e8
* commit '
075bf626e80a7ad6858d734cb88bcbe293caa33d':
Add a new kReservedCapacity to decide when to start GC code.
Vladimir Marko [Tue, 23 Feb 2016 10:54:41 +0000 (10:54 +0000)]
Merge "Dex-wide ArenaPool scoping for AOT compilation"
am:
e4c77b4d37
* commit '
e4c77b4d37024c1ed74e72494e69605942fead61':
Dex-wide ArenaPool scoping for AOT compilation
Nicolas Geoffray [Tue, 23 Feb 2016 10:54:32 +0000 (10:54 +0000)]
Merge "Add a new kReservedCapacity to decide when to start GC code."
am:
08e992e41e
* commit '
08e992e41e5e234ecc6b38a4ab53d4876fd077b6':
Add a new kReservedCapacity to decide when to start GC code.
Vladimir Marko [Tue, 23 Feb 2016 10:52:23 +0000 (10:52 +0000)]
Merge "Dex-wide ArenaPool scoping for AOT compilation"
Nicolas Geoffray [Tue, 23 Feb 2016 10:52:11 +0000 (10:52 +0000)]
Merge "Add a new kReservedCapacity to decide when to start GC code."
Calin Juravle [Tue, 23 Feb 2016 10:45:40 +0000 (10:45 +0000)]
Merge "Fix static dex2oat build" am:
4764d4e253
am:
f006a4bc9d
* commit '
f006a4bc9d112af0f90bf09d194da2bf681af806':
Fix static dex2oat build
Calin Juravle [Tue, 23 Feb 2016 10:42:41 +0000 (10:42 +0000)]
Merge "Fix static dex2oat build"
am:
4764d4e253
* commit '
4764d4e253aaea1595bbe1f5aaa8677ea9319b79':
Fix static dex2oat build
Calin Juravle [Tue, 23 Feb 2016 10:41:25 +0000 (10:41 +0000)]
Merge "Fix static dex2oat build"
Sebastien Hertz [Tue, 23 Feb 2016 08:51:55 +0000 (08:51 +0000)]
Merge "Build jdwp tests with Jack in vogar" into nyc-dev
am:
b7555a478a
* commit '
b7555a478a1d2b16ad2093c8499449bfd3bf9bc8':
Build jdwp tests with Jack in vogar
Sebastien Hertz [Tue, 23 Feb 2016 08:49:07 +0000 (08:49 +0000)]
Merge "Build jdwp tests with Jack in vogar" into nyc-dev
Delphine Martin [Tue, 23 Feb 2016 08:43:09 +0000 (08:43 +0000)]
Merge "Revert "Force Jack to consider multidex annotations"" am:
920e1230d6
am:
16d7cbbd42
* commit '
16d7cbbd42c6690592b4dda7823f2693b7829dba':
Revert "Force Jack to consider multidex annotations"
Delphine Martin [Tue, 23 Feb 2016 08:32:52 +0000 (08:32 +0000)]
Merge "Revert "Force Jack to consider multidex annotations""
am:
920e1230d6
* commit '
920e1230d617ec1194dc22cab3ec9d704e1b30dc':
Revert "Force Jack to consider multidex annotations"
Sebastien Hertz [Wed, 17 Feb 2016 16:05:52 +0000 (17:05 +0100)]
Build jdwp tests with Jack in vogar
These tests are compiled with Jack in the CTS so we do the same
with vogar now.
Bug:
27218415
(cherry picked from commit
6705dabdb9a882cc7829abed41e0bb3196fc829c)
Change-Id: Idccaef9e2ee2434f6ad2568286504063b0fe5268
Delphine Martin [Tue, 23 Feb 2016 08:19:30 +0000 (08:19 +0000)]
Merge "Revert "Force Jack to consider multidex annotations""
Mathieu Chartier [Tue, 23 Feb 2016 01:37:46 +0000 (01:37 +0000)]
Merge "Add regression test for alloc stack trace and unloading" am:
6a5c5b8f17
am:
d1060f4d5b
* commit '
d1060f4d5b4e104260777f145f1083ee747a5957':
Add regression test for alloc stack trace and unloading
Mathieu Chartier [Tue, 23 Feb 2016 01:32:53 +0000 (01:32 +0000)]
Add regression test for alloc stack trace and unloading
am:
dcfb382456
* commit '
dcfb3824562a5d75c8080686211584b1b40002b5':
Add regression test for alloc stack trace and unloading
Mathieu Chartier [Tue, 23 Feb 2016 01:30:53 +0000 (01:30 +0000)]
Merge "Add regression test for alloc stack trace and unloading"
am:
6a5c5b8f17
* commit '
6a5c5b8f1738404bebc5f880e6cc0967cbb687e1':
Add regression test for alloc stack trace and unloading
Mathieu Chartier [Tue, 23 Feb 2016 00:56:54 +0000 (16:56 -0800)]
Add regression test for alloc stack trace and unloading
Test creates allocations in a different loader, then unloads it.
This would free the ArtMethod except that we now visit them as
roots.
Bug:
26849503
(cherry picked from commit
8a7ef10d10ac1509b79d315fe865bd3c4731262b)
Change-Id: If63e26b49380e7b99244ee25e70e729a1736344a
Mathieu Chartier [Tue, 23 Feb 2016 01:21:13 +0000 (01:21 +0000)]
Merge "Add regression test for alloc stack trace and unloading"
Mathieu Chartier [Tue, 23 Feb 2016 00:56:54 +0000 (16:56 -0800)]
Add regression test for alloc stack trace and unloading
Test creates allocations in a different loader, then unloads it.
This would free the ArtMethod except that we now visit them as
roots.
Bug:
26849503
Change-Id: Ied9f5942ff9022b1cd39052363f119a630ffbaef
Mathieu Chartier [Tue, 23 Feb 2016 00:41:09 +0000 (00:41 +0000)]
Merge "Visit stack trace roots" am:
5039728b6c
am:
9e75d48fb0
* commit '
9e75d48fb0563adffa72a0d54146e6343366fd07':
Visit stack trace roots
Mathieu Chartier [Tue, 23 Feb 2016 00:34:22 +0000 (00:34 +0000)]
Visit stack trace roots
am:
ac5fb70796
* commit '
ac5fb70796f7fbf210e664992b052c05438939eb':
Visit stack trace roots
Mathieu Chartier [Tue, 23 Feb 2016 00:26:51 +0000 (00:26 +0000)]
Merge "Visit stack trace roots"
am:
5039728b6c
* commit '
5039728b6ce61e70bfca5d35889ecbd4150a5af9':
Visit stack trace roots
Mathieu Chartier [Mon, 22 Feb 2016 22:49:04 +0000 (14:49 -0800)]
Visit stack trace roots
We need to visit the declaring classes of all the methods in the
allocation stack traces to prevent class unloading for these
methods. If the class gets unloaded, it will free the linear alloc
resulting in hprof crashing during dumping.
Also a bit of clean up.
Bug:
26849503
(cherry picked from commit
a7deef9260bd53dfd6b51ace02b4e6200078d5ea)
Change-Id: If7df7259d0e5044dbcf35f5b4e86f6cf2e583adb
Mathieu Chartier [Tue, 23 Feb 2016 00:18:30 +0000 (00:18 +0000)]
Merge "Visit stack trace roots"
Mathieu Chartier [Mon, 22 Feb 2016 22:49:04 +0000 (14:49 -0800)]
Visit stack trace roots
We need to visit the declaring classes of all the methods in the
allocation stack traces to prevent class unloading for these
methods. If the class gets unloaded, it will free the linear alloc
resulting in hprof crashing during dumping.
Also a bit of clean up.
Bug:
26849503
Change-Id: I5cc57436294e4399388cb497819148b8a3b973d9
Nicolas Geoffray [Mon, 22 Feb 2016 22:51:49 +0000 (22:51 +0000)]
Merge "Revert "Add profman tool: responsible to process profiles"" am:
a5502e31cb
am:
12986557d2
* commit '
12986557d2776f62eeff6d7c2523b233f18bf2a2':
Revert "Add profman tool: responsible to process profiles"
Hiroshi Yamauchi [Mon, 22 Feb 2016 22:46:33 +0000 (22:46 +0000)]
Merge "Fix class_linker_test for valgrind." am:
4a582f864c
am:
e8693f0624
* commit '
e8693f06247dd769eaad614c5573163f1b890b2f':
Fix class_linker_test for valgrind.
Hiroshi Yamauchi [Mon, 22 Feb 2016 22:46:25 +0000 (22:46 +0000)]
Merge "Fix CC collector thread flip and JNI critical section deadlocks." am:
8852d809b2
am:
c8bdb4597e
* commit '
c8bdb4597eeab5b33e2382e0399e74de919f78f1':
Fix CC collector thread flip and JNI critical section deadlocks.
Andreas Gampe [Mon, 22 Feb 2016 22:46:16 +0000 (22:46 +0000)]
Merge "ART: Add Class.getEnclosingClass() to UnstartedRuntime" am:
eacf4cbb21
am:
1024d3e274
* commit '
1024d3e2747d1efc54b5ff502411fca3d4efd0fd':
ART: Add Class.getEnclosingClass() to UnstartedRuntime
Bill Buzbee [Mon, 22 Feb 2016 22:46:07 +0000 (22:46 +0000)]
Merge "ART: Enable JitProfiling for Arm Mterp" am:
e33d20e321
am:
e0c79bead6
* commit '
e0c79bead65d3955adf5ebf2b121ce95c4225401':
ART: Enable JitProfiling for Arm Mterp
Vladimir Marko [Mon, 22 Feb 2016 22:45:55 +0000 (22:45 +0000)]
Merge "Optimizing/x86-64: Use MOVL in Load64BitValue() if IsUint<32>()." am:
8fda759172
am:
5d82869763
* commit '
5d82869763ae3238781a0746c6c653e5b1cd4f9a':
Optimizing/x86-64: Use MOVL in Load64BitValue() if IsUint<32>().
Nicolas Geoffray [Mon, 22 Feb 2016 22:45:20 +0000 (22:45 +0000)]
Merge "Revert "Add profman tool: responsible to process profiles""
am:
a5502e31cb
* commit '
a5502e31cb558c6e257d1dd1889c073a793e3d9d':
Revert "Add profman tool: responsible to process profiles"
Nicolas Geoffray [Mon, 22 Feb 2016 22:38:27 +0000 (22:38 +0000)]
Merge "Revert "Add profman tool: responsible to process profiles""
Nicolas Geoffray [Mon, 22 Feb 2016 22:37:52 +0000 (22:37 +0000)]
Revert "Add profman tool: responsible to process profiles"
Needs a profile_assistant_test fix.
Bug:
26719109
Bug:
26563023
This reverts commit
6caefd983a800a063b219f1d3ed71b1416cecd70.
Change-Id: Ibdeb7385737dd7846ed861e0a95f083abb9aa974
Hiroshi Yamauchi [Mon, 22 Feb 2016 21:52:27 +0000 (21:52 +0000)]
Merge "Fix class_linker_test for valgrind."
am:
4a582f864c
* commit '
4a582f864c10fce33fe9ba632aefc5e656280bc2':
Fix class_linker_test for valgrind.
Hiroshi Yamauchi [Mon, 22 Feb 2016 21:45:16 +0000 (21:45 +0000)]
Merge "Fix class_linker_test for valgrind."
Hiroshi Yamauchi [Mon, 22 Feb 2016 21:44:53 +0000 (21:44 +0000)]
Merge "Fix CC collector thread flip and JNI critical section deadlocks."
am:
8852d809b2
* commit '
8852d809b21b37a0e97ea3514ff9f13b2ec8dcb3':
Fix CC collector thread flip and JNI critical section deadlocks.
Hiroshi Yamauchi [Mon, 22 Feb 2016 21:30:35 +0000 (13:30 -0800)]
Fix class_linker_test for valgrind.
Fix a memory leak.
Bug:
27156726
Change-Id: I4d9a2dc9cff447b6f2fd02432e018ae49766563a
Hiroshi Yamauchi [Mon, 22 Feb 2016 21:41:06 +0000 (21:41 +0000)]
Merge "Fix CC collector thread flip and JNI critical section deadlocks."
Andreas Gampe [Mon, 22 Feb 2016 20:52:18 +0000 (20:52 +0000)]
Merge "ART: Add Class.getEnclosingClass() to UnstartedRuntime"
am:
eacf4cbb21
* commit '
eacf4cbb21ec35f5261779e60be8981d2e85e493':
ART: Add Class.getEnclosingClass() to UnstartedRuntime
Andreas Gampe [Mon, 22 Feb 2016 20:50:35 +0000 (20:50 +0000)]
Merge "ART: Add Class.getEnclosingClass() to UnstartedRuntime"
Andreas Gampe [Mon, 22 Feb 2016 20:06:41 +0000 (20:06 +0000)]
Merge "ART: Add Class.getEnclosingClass() to UnstartedRuntime" into nyc-dev
am:
f7e0d1afc0
* commit '
f7e0d1afc0f80bf867834c7e46cc7c7af4eb719d':
ART: Add Class.getEnclosingClass() to UnstartedRuntime
Bill Buzbee [Mon, 22 Feb 2016 19:41:44 +0000 (19:41 +0000)]
Merge "ART: Enable JitProfiling for Arm Mterp"
am:
e33d20e321
* commit '
e33d20e321b630bcab83f6dfbfac2788d8145148':
ART: Enable JitProfiling for Arm Mterp
Hiroshi Yamauchi [Fri, 19 Feb 2016 23:44:06 +0000 (15:44 -0800)]
Fix CC collector thread flip and JNI critical section deadlocks.
There's a bug in the synchronization between the CC collector's thread
flip and JNI critical sections where it incorrectly attempts to make
the synchronization scheme to be writer (GC) preference to avoid
starvation of GC in the presence of frequent JNI critical section
enter/exit. This could cause a deadlock between them if a thread
enters a nested JNI critical section after a thread flip occurs. This
is reproduced in the added test.
The fix is to use a thread local disable counter in addition to the
global counter to detect a nested enter by the same thread and avoid
waiting if nested.
Bug:
19235243
Bug:
12687968
Change-Id: Idf7720a6906c9ea508219935af3727f76680d2d8
Andreas Gampe [Fri, 19 Feb 2016 18:49:50 +0000 (10:49 -0800)]
ART: Add Class.getEnclosingClass() to UnstartedRuntime
Required to initialize classes calling getSimpleName().
Bug:
27265238
(cherry picked from commit
fb5c22e28030cc9ba8424b7f6f70677ec3ba3afc)
Change-Id: Id63dac5b75b3bbcdfe80f73f2d9d76dea3996823
Andreas Gampe [Mon, 22 Feb 2016 19:32:18 +0000 (19:32 +0000)]
Merge "ART: Add Class.getEnclosingClass() to UnstartedRuntime" into nyc-dev
Bill Buzbee [Mon, 22 Feb 2016 19:14:13 +0000 (19:14 +0000)]
Merge "ART: Enable JitProfiling for Arm Mterp"
Vladimir Marko [Mon, 22 Feb 2016 18:41:47 +0000 (18:41 +0000)]
Merge "Optimizing/x86-64: Use MOVL in Load64BitValue() if IsUint<32>()."
am:
8fda759172
* commit '
8fda7591726fa274ccb126f216356ef9fd39e035':
Optimizing/x86-64: Use MOVL in Load64BitValue() if IsUint<32>().
Vladimir Marko [Mon, 22 Feb 2016 18:37:47 +0000 (18:37 +0000)]
Merge "Optimizing/x86-64: Use MOVL in Load64BitValue() if IsUint<32>()."
Calin Juravle [Mon, 22 Feb 2016 18:20:49 +0000 (18:20 +0000)]
Fix static dex2oat build
Change-Id: I1a5fb726fa72d9ccd083f90a818e245f075fc89c
Vladimir Marko [Mon, 22 Feb 2016 16:54:39 +0000 (16:54 +0000)]
Optimizing/x86-64: Use MOVL in Load64BitValue() if IsUint<32>().
Change-Id: Ie8bfb1861a384d0906f2aff9e8a94be0925c65b6
Hans Boehm [Mon, 22 Feb 2016 16:06:12 +0000 (16:06 +0000)]
Merge "Add Math.round tests for large integers." am:
827e2128fa
am:
2ad71dd6ca
* commit '
2ad71dd6ca7f5a833d382b84e23163d25ed9015f':
Add Math.round tests for large integers.