History log of /art/runtime/gc/collector/immune_spaces.cc
Revision Date Author Comments
0cc2a92374ef14b0e2104b9d4ea148750b657694 28-Feb-2016 Mathieu Chartier <mathieuc@google.com> 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
deb880435f892f2f577a7c730bbccb315bc49e1c 27-Feb-2016 Nicolas Geoffray <ngeoffray@google.com> 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
032c0051eb47f1f62586602894e5833356f4f9ec 28-Feb-2016 Mathieu Chartier <mathieuc@google.com> 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.

Change-Id: I4eb345f34e66b8684cd71a7897e3a8caa2f84140
07dbbca0b42cb8da1811de8209b4a7d4becfc7b2 27-Feb-2016 Nicolas Geoffray <ngeoffray@google.com> 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.

Change-Id: I9168421dd6ebabc271ed5c2cdbc5a27c211dcf5a
06fc03b2bf02f1ccecfaaaaaa36ee8be65711c47 23-Feb-2016 Mathieu Chartier <mathieuc@google.com> 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
17b8bce064fe4c0b29117abe489b7f8c2c950d43 23-Feb-2016 Mathieu Chartier <mathieuc@google.com> 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
Change-Id: If2c002176dd32122e320e8a94551df46bd95256a
66a55394b0489b30576f90499f24b792a400a2d2 19-Feb-2016 Mathieu Chartier <mathieuc@google.com> Add VLOG(collector) to reduce log spam

VLOG(gc) is enabled from AndroidRuntime, using it too much produces
log spam.

Bug: 22858531

(cherry picked from commit a6e1c126299586932ecd3c1133a55a6f8e1107fc)

Change-Id: If60902a8d7855cdabd80208b9b385ce4ba4d9e5f
a6e1c126299586932ecd3c1133a55a6f8e1107fc 19-Feb-2016 Mathieu Chartier <mathieuc@google.com> Add VLOG(collector) to reduce log spam

VLOG(gc) is enabled from AndroidRuntime, using it too much produces
log spam.

Bug: 22858531
Change-Id: I5306c512eb7f55a178fa607d4b211ef25246e300
df0a8275abadc96a6363b59f31c64981571d6ed9 18-Feb-2016 Mathieu Chartier <mathieuc@google.com> Use image oat file instead of image header for immune spaces

The old immune spaces logic used the oat file information in the
image header instead of the actual oat file pointer. This was
incorrect for the app image case since the app image oat file is
not necessarily at the address specified in the header. This bug
could cause an incorrect immune region that caused large objects
to get freed if they were within this immune region.

Added test.

Bug: 22858531

(cherry picked from commit 5351da0225d027a19420153615634a1c78966bca)

Change-Id: Ibf41b0c0a9a7b0d093146311e2603a186033e339
5351da0225d027a19420153615634a1c78966bca 18-Feb-2016 Mathieu Chartier <mathieuc@google.com> Use image oat file instead of image header for immune spaces

The old immune spaces logic used the oat file information in the
image header instead of the actual oat file pointer. This was
incorrect for the app image case since the app image oat file is
not necessarily at the address specified in the header. This bug
could cause an incorrect immune region that caused large objects
to get freed if they were within this immune region.

Added test.

Bug: 22858531
Change-Id: I243253e61ea1afd42c3bb2414c02ce6dd36d0f9c
763a31ed7a2bfad22a9cb07f5301a71c0f97ca49 17-Nov-2015 Mathieu Chartier <mathieuc@google.com> Add immune spaces abstraction

ImmuneSpaces is a set of spaces which are not reclaimable by the GC in
the current collection. This set of spaces does not have requirements
about space adjacency like the old ImmuneRegion. ImmuneSpaces generates
the largest immune region for the GC. Since there is no requirement on
adjacency, it is possible to have multiple non-adjacent applicaton
image files.

For image spaces, we also look at the oat code which is normally after
the application image. In this case, we add the code as part of the
immune region. This is required to have both the boot image and the
zygote space be in the same immune region (for performance reasons).

Bug: 22858531

Change-Id: I5103b31c0e39ad63c594f5557fc848a3b288b43e