History log of /dalvik/vm/alloc/HeapBitmap.h
Revision Date Author Comments
38d710b524f2d9888e89b4ea0209f0b57025dab4 01-Sep-2010 Carl Shapiro <cshapiro@google.com> Move the finger computation out of the bitmap scanning callback.

The finger computation depends on bitmap internals. This knowledge
should not be part of the bitmap interface, just its implementation.
This change adds a new walker that computes and passes a finger
argument to a callback. As part of this change, code to recompute the
end address during a walk has been removed from the ordinary bitmap
walker code. That check is needed by the scanning walk as its
callback may advance the max address when setting mark bits for
objects beyond the finger.
a634c852e985dcacf621c428c0597674bc5bfd77 30-Aug-2010 Carl Shapiro <cshapiro@google.com> Reduce the frequency of bitmap walk loop-bound computations.
57ee270b755271166b2349321e5b8b5457731dd7 27-Aug-2010 Carl Shapiro <cshapiro@google.com> Simplify the bitmap walker subroutines.

This change...

* Separates walking from sweeping. Walking had been implemented by a
sweeping with an empty mark bitmap argument.

* Localizes the finger machinations to scanBitmapCallback. There is
one use of the finger but all callbacks received the argument.

* Inlines a simplified bitmap walking routine operating a pointer at a
time. Only sweeping benefits from batching decoded addresses.
7511ae1ed686ccdf6cfefeabeede0cedb0c36b77 20-Aug-2010 Carl Shapiro <cshapiro@google.com> Combine a typedef with a struct declaration.
eff16fb843ec191508d2e8306b6dfd8209ede501 19-Aug-2010 Carl Shapiro <cshapiro@google.com> Use symbolic constants when computing bits-per-word.
1c206f66a31215f0b5ce3897d607ae82281b1765 21-Jul-2010 Barry Hayes <bhayes@google.com> Change dvmHeapBitmapXorWalk to dvmHeapBitmapSweepWalk.

Concurrent sweeping will require the callback to process objects which
are live and not marked, while the client code continues to allocate
and set bits. Since dvmHeapBitmapXorWalk was only used to sweep, it
seemed easiest to make it learn its true purpose.
acdea993a168b26892f172015c7c8df696d25bad 21-Jul-2010 Barry Hayes <bhayes@google.com> Change dvmHeapBitmapXorWalk to dvmHeapBitmapSweepWalk.

Concurrent sweeping will require the callback to process objects which
are live and not marked, while the client code continues to allocate
and set bits. Since dvmHeapBitmapXorWalk was only used to sweep, it
seemed easiest to make it learn its true purpose.

Change-Id: I44edd15e5a7447d029a7ae60c6cd9b101cb1e9d9
006346e8f138b4e4b16c7a94b049c1646b009b52 30-Jul-2010 Carl Shapiro <cshapiro@google.com> Change the bitmap callback signature to have a void return value.

Previously, a bitmap callback could abort the bitmap traversal by
returning false. All of the bitmap callbacks used in the garbage
collector are hardwired to return true. This change eliminates the
early termination facility and its attendant complexity.

Change-Id: I5490dd74b56b9700ec1b7e657637fae5eb4cc339
aca6ec801765bfb49765bf4848ee4b97ab231572 13-Jul-2010 Carl Shapiro <cshapiro@google.com> Remove redundant "#ifndef NDEBUG" guarding asserts.

Change-Id: Iaa4687cbaaa1eac59cf0b80afb57b3ba708ece09
9cbece20cacb36193a14e9eb449d7ded091d264b 13-Jul-2010 Carl Shapiro <cshapiro@google.com> Use "long" instead of the more verbose but equivalent "long int".

Change-Id: I06f87c0f8314baeccac6e96e47ad749ff18a065c
6e5cf6021b2f3e00e18ab402f23ab93b27c6061b 22-Jun-2010 Barry Hayes <bhayes@google.com> Quicker partial collection by using card marking.

Add calls to the card marking from the write barrier routines, so that
a write to an Object marks the appropriate card. Add code in the GC to
use and rebuild the cards at a partial GC, clearing cards in the
Zygote heap which do not in fact contain references to the application
heap.

Change-Id: Ie6f29fd096e029f48085715b282b6db8a7122555
fbdcfb9ea9e2a78f295834424c3f24986ea45dac 29-May-2010 Brian Carlstrom <bdc@google.com> Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-master

Change-Id: I0c0edb3ebf0d5e040d6bbbf60269fab0deb70ef9
e168ebd5a7cfc57936c16ff7d7f7063e967bdb9d 07-May-2010 Barry Hayes <bhayes@google.com> Remove the HeapBitmap List routines.

Change-Id: Ic518798ba8574534746ada9e8757948ae2e1bab9
d25566d9278e6424e521f4b7148ac31480e60c5c 12-Mar-2010 Carl Shapiro <cshapiro@google.com> Add the ability to treat the zygote heap as a root collect just the
forked application heap.

Change-Id: I8807897ae426f8274018d950fec44a2182a90525
8ecee7b81c70a8f61d984b6fb2e37fa3ecbd79f9 12-Mar-2010 Carl Shapiro <cshapiro@google.com> Eliminate unused heap bitmap functions. This is mostly the "list"
code which is no longer needed.

Change-Id: I3636a4a6a36e55d2ad080571cdb6c23a16f98aaf
8d72480298d3bab7ca6087482ca62af66974a2a1 15-Feb-2010 Carl Shapiro <cshapiro@google.com> Densely allocate mspaces. New heaps are started on the page following
the break of the previously allocated heap. In addition, we shrink
the reported size of the previous object bitmap so it covers only the
committed range of the heap. We now separately track the size of the
bitmap virtual memory reservation so we may unmap it all at shutdown
time.
8eab1c515ef7f6bdb0252d49e6ea1c8ca7d8cfed 12-Feb-2010 Carl Shapiro <cshapiro@google.com> Do not include assert.h in places where it may shadow the definition
provided by Common.h if WITH_DALVIK_ASSERTS is defined. The include
from HeapBitmap.h was notable as it redefined the Dalvik friendly
assert macro with the useless libc macro across all of the GC sources.
f6c387128427e121477c1b32ad35cdcaa5101ba3 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
f72d5de56a522ac3be03873bdde26f23a5eeeb3c 04-Mar-2009 The Android Open Source Project <initial-contribution@android.com> auto import from //depot/cupcake/@135843
89c1feb0a69a7707b271086e749975b3f7acacf7 18-Dec-2008 The Android Open Source Project <initial-contribution@android.com> Code drop from //branches/cupcake/...@124589
2ad60cfc28e14ee8f0bb038720836a4696c478ad 21-Oct-2008 The Android Open Source Project <initial-contribution@android.com> Initial Contribution