Reconcile with ics-mr1-release

Change-Id: Ibae283408ede0f3ff5a297e8d205e976455f3b95
Reduce Dalvik card table overhead

The VM has a "growth limit" (e.g. 48MB) that is used to cap normal
apps, and a "max heap" (e.g. 128MB) that is used for apps with unusual
high-memory requirements.  The Dalvik GC uses a 128:1 "card table"
that spans the entire managed heap, out to the "max heap" limit.

The table is erased during every concurrent GC.  The first time
we do that post-zygote, the copy-on-write behavior causes physical
pages to be allocated.  We're currently clearing out to the heap max,
not the growth limit, which means we have a bunch of physical memory
allocated for pages that will never be used.

This changes it so we only clear out to the growth limit.  If the
growth limit is removed by the app, we clear out to the heap max.
On devices with a 128MB max heap, this reduces the private/dirty
usage for most apps by 640KB.

Bug 5567332

Change-Id: Iac633017c128d63b284d48016e47d40cc46df1de
Don't decr profiling count without incr

The failure cleanup code in dvmMethodTraceStart() was assuming
that profiling had already been started, which was true until my
previous change.  The code in the interpreter isn't too picky, but
updateActiveProfilers() is trying to keep an accurate acount, and
gets upset.  If you pass in a bad filename, we disable something that
was never enabled, and the VM gets confused and aborts out of spite.

Related to bug 5564440

Change-Id: I17fd8bf4654c29f49efb10142d222a91c190b6ed
Merge "Reduce Dalvik card table overhead" into ics-mr1
am ccf4c9d9: Don\'t decr profiling count without incr

* commit 'ccf4c9d99fcffbc9bf65066004896745b9dcc340':
  Don't decr profiling count without incr
am 4c83f214: Merge "Reduce Dalvik card table overhead" into ics-mr1

* commit '4c83f214932af008cf79aee528ca3f9e66572040':
  Reduce Dalvik card table overhead
Merge "Knock ::self() out of the ParseXml profile." into ics-mr1
Merge "Don't pay for filename/line number lookup unless you need to." into ics-mr1
am 50e01501: Merge "Knock ::self() out of the ParseXml profile." into ics-mr1

* commit '50e015017f091118f0147d02d23140ff9f88daec':
  Knock ::self() out of the ParseXml profile.
am 6cd72bd0: Merge "Don\'t pay for filename/line number lookup unless you need to." into ics-mr1

* commit '6cd72bd0161459e21d496b927967bd0ca6fe0f94':
  Don't pay for filename/line number lookup unless you need to.
Merge "Slight change to unwinder API."
am ccf4c9d9: Don\'t decr profiling count without incr

* commit 'ccf4c9d99fcffbc9bf65066004896745b9dcc340':
  Don't decr profiling count without incr
am 4c83f214: Merge "Reduce Dalvik card table overhead" into ics-mr1

* commit '4c83f214932af008cf79aee528ca3f9e66572040':
  Reduce Dalvik card table overhead
am 50e01501: Merge "Knock ::self() out of the ParseXml profile." into ics-mr1

* commit '50e015017f091118f0147d02d23140ff9f88daec':
  Knock ::self() out of the ParseXml profile.
am 6cd72bd0: Merge "Don\'t pay for filename/line number lookup unless you need to." into ics-mr1

* commit '6cd72bd0161459e21d496b927967bd0ca6fe0f94':
  Don't pay for filename/line number lookup unless you need to.
merge in ics-mr1-release history after reset to ics-mr1
merge in ics-release history after reset to master
Reconcile with ics-mr1-release

Change-Id: I91ffc584e0d2d39aaec9b28ac3cde8b625234968
Fix reporting of initial pause time

The "rootEnd" time was being captured before dvmClearCardTable()
was called.

Bug 5567332

Change-Id: I5499f1648c3e41296c18fa5d95d834c2d2853e8f
Merge "Fix reporting of initial pause time"