OSDN Git Service

android-x86/dalvik.git
13 years agoam 46f7d54c: We also need to tell it the file mode when creating the output.
Dan Bornstein [Mon, 13 Sep 2010 18:52:10 +0000 (11:52 -0700)]
am 46f7d54c: We also need to tell it the file mode when creating the output.

Merge commit '46f7d54cbda931213bbe710c065e1bd82aa0af6c' into gingerbread-plus-aosp

* commit '46f7d54cbda931213bbe710c065e1bd82aa0af6c':
  We also need to tell it the file mode when creating the output.

13 years agoWe also need to tell it the file mode when creating the output.
Dan Bornstein [Mon, 13 Sep 2010 01:27:00 +0000 (18:27 -0700)]
We also need to tell it the file mode when creating the output.

Thanks to Elliott for catching this.

Change-Id: Ibb89ece3dd2e1d39a8a2d51cb8b7278842e057a1

13 years agoam 17e4ea8f: Actually, dexopt needs to read the optimized dex file too.
Dan Bornstein [Mon, 13 Sep 2010 01:17:08 +0000 (18:17 -0700)]
am 17e4ea8f: Actually, dexopt needs to read the optimized dex file too.

Merge commit '17e4ea8f17b6e4e14c483de49b3a3f053af188b4' into gingerbread-plus-aosp

* commit '17e4ea8f17b6e4e14c483de49b3a3f053af188b4':
  Actually, dexopt needs to read the optimized dex file too.

13 years agoam dd2502bd: Move declarations to the top to avoid potential uninitialized use.
Dan Bornstein [Mon, 13 Sep 2010 01:17:06 +0000 (18:17 -0700)]
am dd2502bd: Move declarations to the top to avoid potential uninitialized use.

Merge commit 'dd2502bd371ddca554b7a3d900fe120a3e7767ec' into gingerbread-plus-aosp

* commit 'dd2502bd371ddca554b7a3d900fe120a3e7767ec':
  Move declarations to the top to avoid potential uninitialized use.

13 years agoActually, dexopt needs to read the optimized dex file too.
Dan Bornstein [Mon, 13 Sep 2010 01:12:27 +0000 (18:12 -0700)]
Actually, dexopt needs to read the optimized dex file too.

Change-Id: Ib36cc0fd134a6916100060c8e2eee5158ac87201

13 years agoMove declarations to the top to avoid potential uninitialized use.
Dan Bornstein [Mon, 13 Sep 2010 00:34:35 +0000 (17:34 -0700)]
Move declarations to the top to avoid potential uninitialized use.

I didn't catch the warnings among the build spew before. Also, made
"--preopt" use stderr for its complaints about arguments.

Change-Id: I8d470ccc40c4cdc9131beb0991060358039e2727

13 years agoam 4701d5f8: Add a new "--preopt" mode to dexopt, for running on the host.
Dan Bornstein [Mon, 13 Sep 2010 00:23:51 +0000 (17:23 -0700)]
am 4701d5f8: Add a new "--preopt" mode to dexopt, for running on the host.

Merge commit '4701d5f8d0e691eeb9a0824311d5166d301a5aa5' into gingerbread-plus-aosp

* commit '4701d5f8d0e691eeb9a0824311d5166d301a5aa5':
  Add a new "--preopt" mode to dexopt, for running on the host.

13 years agoAdd a new "--preopt" mode to dexopt, for running on the host.
Dan Bornstein [Sun, 12 Sep 2010 23:42:28 +0000 (16:42 -0700)]
Add a new "--preopt" mode to dexopt, for running on the host.

This change takes much of what used to be in the function fromZip()
(the "--zip" mode implementation) and pulls it into a helper function,
which is then also used by the new preopt() function.

Change-Id: Id54618047896366448adaec0bf973627a9f1f397

13 years agoam ab9d89fb: Pre-alpha cut of the new dex preoptimization script.
Dan Bornstein [Sun, 12 Sep 2010 20:12:29 +0000 (13:12 -0700)]
am ab9d89fb: Pre-alpha cut of the new dex preoptimization script.

Merge commit 'ab9d89fb7417157c3972278d1bd899cc091a8168' into gingerbread-plus-aosp

* commit 'ab9d89fb7417157c3972278d1bd899cc091a8168':
  Pre-alpha cut of the new dex preoptimization script.

13 years agoPre-alpha cut of the new dex preoptimization script.
Dan Bornstein [Sun, 12 Sep 2010 20:03:27 +0000 (13:03 -0700)]
Pre-alpha cut of the new dex preoptimization script.

This will successfully find all the right directories etc., but it doesn't
do any actual dex processing yet. Stay tuned!

Change-Id: I4926308231366d6bae7b6a4594b4edb99192bf42

13 years agoam 23608ab4: Fix inliner bug for empty callees.
Ben Cheng [Sat, 11 Sep 2010 00:19:42 +0000 (17:19 -0700)]
am 23608ab4: Fix inliner bug for empty callees.

Merge commit '23608ab40900463fc5c8461671ba3aa5d0a4260e' into gingerbread-plus-aosp

* commit '23608ab40900463fc5c8461671ba3aa5d0a4260e':
  Fix inliner bug for empty callees.

13 years agoFix inliner bug for empty callees.
Ben Cheng [Sat, 11 Sep 2010 00:11:11 +0000 (17:11 -0700)]
Fix inliner bug for empty callees.

Add an explicit branch to continue from the next instruction.

Bug: 2992514

(cherry-picked from dalvik-dev)

Change-Id: I6e036e330255e7cd9d1504c50c4260910c38dfff

13 years agoam 50afc65c: Merge "JIT: Fix inconsistent handling of sub-word instance git/put"...
buzbee [Thu, 9 Sep 2010 23:48:42 +0000 (16:48 -0700)]
am 50afc65c: Merge "JIT: Fix inconsistent handling of sub-word instance git/put" into gingerbread

Merge commit '50afc65c674fee10ed9a0380daaee7862cc79d5d' into gingerbread-plus-aosp

* commit '50afc65c674fee10ed9a0380daaee7862cc79d5d':
  JIT: Fix inconsistent handling of sub-word instance git/put

13 years agoMerge "JIT: Fix inconsistent handling of sub-word instance git/put" into gingerbread
buzbee [Thu, 9 Sep 2010 23:46:09 +0000 (16:46 -0700)]
Merge "JIT: Fix inconsistent handling of sub-word instance git/put" into gingerbread

13 years agoJIT: Fix inconsistent handling of sub-word instance git/put
buzbee [Thu, 9 Sep 2010 21:07:01 +0000 (14:07 -0700)]
JIT: Fix inconsistent handling of sub-word instance git/put

The portable interpreter and fast interpreter use 32-bit accesses
for all sub-word scalars.  The JIT generated code to tailor the access
to the data size.  It doesn't matter which approach is taken, but all
interpreters & JIT must be consistent.  Changing the JIT to use 32-bit
accesses for all sub-word instance scalars.

Fix for Issue 2973137

Change-Id: I8b1e9e6be075012c7c174728b77c7a76884975b7

13 years agoam 139bd978: Added "dexopt for SMP" flag.
Andy McFadden [Thu, 9 Sep 2010 23:16:57 +0000 (16:16 -0700)]
am 139bd978: Added "dexopt for SMP" flag.

Merge commit '139bd97804a69634e7c4cecf06910a050a4ac093' into gingerbread-plus-aosp

* commit '139bd97804a69634e7c4cecf06910a050a4ac093':
  Added "dexopt for SMP" flag.

13 years agoAdded "dexopt for SMP" flag.
Andy McFadden [Thu, 9 Sep 2010 19:54:43 +0000 (12:54 -0700)]
Added "dexopt for SMP" flag.

Currently, dexopt always runs on the target device, which means that
decisions about whether or not to convert certain opcodes to SMP-safe
variants could be made based on #ifdefs.

Since we are planning to run dexopt on the host, we need to be able
to configure SMP-mode independently.  This change adds a global variable
that the dexopt code can check.

There is currently no command-line argument to set this, since it will
be set by "dexopt" rather than "dalvikvm", and the exact method of
launching dexopt from the host build is still mildly TBD.

Bug 2981136.

(cherry-pick from dalvik-dev)

Change-Id: I7474f79a25368223ecf1e491458f4a82e85db01f

13 years agoam d394371b: Remove the functionality in ReduceConstants.[ch].
Dan Bornstein [Thu, 9 Sep 2010 19:07:28 +0000 (12:07 -0700)]
am d394371b: Remove the functionality in ReduceConstants.[ch].

Merge commit 'd394371bd84bacc51e96e2d2eacb8549d9110b1e' into gingerbread-plus-aosp

* commit 'd394371bd84bacc51e96e2d2eacb8549d9110b1e':
  Remove the functionality in ReduceConstants.[ch].

13 years agoRemove the functionality in ReduceConstants.[ch].
Dan Bornstein [Wed, 8 Sep 2010 22:50:00 +0000 (15:50 -0700)]
Remove the functionality in ReduceConstants.[ch].

It was a good experiment to try, but it was never made production-ready,
and it doesn't look like it would be a net win at this point. We
metaphorically pour out a beer in its honor.

Change-Id: I7f6ac95f5b7c963df0a3015ed33595fa1a928636

13 years agoam 2c81bdc3: Cherry pick new concurrent gc trigger change from dalvik-dev.
Carl Shapiro [Wed, 8 Sep 2010 00:10:32 +0000 (17:10 -0700)]
am 2c81bdc3: Cherry pick new concurrent gc trigger change from dalvik-dev.

Merge commit '2c81bdc3bb892d7d60855e14f61854f20a9f6cb8' into gingerbread-plus-aosp

* commit '2c81bdc3bb892d7d60855e14f61854f20a9f6cb8':
  Cherry pick new concurrent gc trigger change from dalvik-dev.

13 years agoCherry pick new concurrent gc trigger change from dalvik-dev.
Carl Shapiro [Tue, 7 Sep 2010 23:19:01 +0000 (16:19 -0700)]
Cherry pick new concurrent gc trigger change from dalvik-dev.

git cherry-pick d370c7d8c5bd4f49274b5d306751c43c7bb44a0b --no-commit
git cherry-pick 562cafca106d36ae910fafa87f3d5f245fe818ae --no-commit
git cherry-pick ab46f94967a76a1c141c1e719d5f2cffe2780a8c --no-commit

Change-Id: Iba35cd3afee5d575b8121f7ab3ef5b45b37f5278

13 years agoam 44165848: Merge "Operate on bitmaps directly for live and mark checks." into ginge...
Carl Shapiro [Fri, 3 Sep 2010 19:16:34 +0000 (12:16 -0700)]
am 44165848: Merge "Operate on bitmaps directly for live and mark checks." into gingerbread

Merge commit '4416584802dbda4ade8df7f81af84a73d6887049' into gingerbread-plus-aosp

* commit '4416584802dbda4ade8df7f81af84a73d6887049':
  Operate on bitmaps directly for live and mark checks.

13 years agoMerge "Operate on bitmaps directly for live and mark checks." into gingerbread
Carl Shapiro [Fri, 3 Sep 2010 19:14:46 +0000 (12:14 -0700)]
Merge "Operate on bitmaps directly for live and mark checks." into gingerbread

13 years agoam ddc7d29b: Correct Volatile SGET/SPUT format tag, add missing cases for JIT
buzbee [Fri, 3 Sep 2010 16:22:41 +0000 (09:22 -0700)]
am ddc7d29b: Correct Volatile SGET/SPUT format tag, add missing cases for JIT

Merge commit 'ddc7d29baa92cb24b7bfa80395479f878109f3f8' into gingerbread-plus-aosp

* commit 'ddc7d29baa92cb24b7bfa80395479f878109f3f8':
  Correct Volatile SGET/SPUT format tag, add missing cases for JIT

13 years agoCorrect Volatile SGET/SPUT format tag, add missing cases for JIT
buzbee [Fri, 3 Sep 2010 00:16:24 +0000 (17:16 -0700)]
Correct Volatile SGET/SPUT format tag, add missing cases for JIT

Fix for http://b/issue?id=2971877, which was identified via
debug tracing on http://b/issue?id=2971569.  There were a couple
of problems: first, the volatile sget/sput byte codes had the
wrong format tag (22c instead of 21c).  Second, the JIT was missing
a couple of case statments to handle these.  As far as the JIT goes,
this would not have caused correctness problems, but would have
been slower than necessary.

Change-Id: I57a41c4e063642b0c19acba5bb0855dd8ce2d4ba

13 years agoOperate on bitmaps directly for live and mark checks.
Carl Shapiro [Fri, 3 Sep 2010 06:32:25 +0000 (23:32 -0700)]
Operate on bitmaps directly for live and mark checks.

Previously, the card table scan use the valid object check to see if a
given address pointed to a live object header.  This check is overkill
an requires out of line function calls.  With this change, we query the
bitmaps directly during the scan avoiding significant overhead.

Change-Id: Ifccb93edb97154d44a652735c1d34845adf88740

13 years agoam d7400e0e: Normalize the declaration style.
Carl Shapiro [Fri, 3 Sep 2010 01:44:15 +0000 (18:44 -0700)]
am d7400e0e: Normalize the declaration style.

Merge commit 'd7400e0ec701dd481489ad421d55c7cd903f77ee' into gingerbread-plus-aosp

* commit 'd7400e0ec701dd481489ad421d55c7cd903f77ee':
  Normalize the declaration style.

13 years agoNormalize the declaration style.
Carl Shapiro [Fri, 3 Sep 2010 01:24:29 +0000 (18:24 -0700)]
Normalize the declaration style.

Change-Id: I204dec4a80672ea10286cefcff7884b15ebaae51

13 years agoam 3ba10c99: Use an acquiring CAS for lock acquisition.
Carl Shapiro [Fri, 3 Sep 2010 00:45:25 +0000 (17:45 -0700)]
am 3ba10c99: Use an acquiring CAS for lock acquisition.

Merge commit '3ba10c9932db4c7c9546081ea070c73d5001c168' into gingerbread-plus-aosp

* commit '3ba10c9932db4c7c9546081ea070c73d5001c168':
  Use an acquiring CAS for lock acquisition.

13 years agoUse an acquiring CAS for lock acquisition.
Carl Shapiro [Thu, 2 Sep 2010 23:43:16 +0000 (16:43 -0700)]
Use an acquiring CAS for lock acquisition.

Change-Id: Idca782aedc8f2071cdfde2fe3dcba0503fa6c9f0

13 years agoam 7d12781a: Merge "Add additional context to the contention event logging." into...
Carl Shapiro [Thu, 2 Sep 2010 18:35:31 +0000 (11:35 -0700)]
am 7d12781a: Merge "Add additional context to the contention event logging." into gingerbread

Merge commit '7d12781a1d2d4d4b2e3a6c78a375cb15ea2d96ae' into gingerbread-plus-aosp

* commit '7d12781a1d2d4d4b2e3a6c78a375cb15ea2d96ae':
  Add additional context to the contention event logging.

13 years agoMerge "Add additional context to the contention event logging." into gingerbread
Carl Shapiro [Thu, 2 Sep 2010 18:28:32 +0000 (11:28 -0700)]
Merge "Add additional context to the contention event logging." into gingerbread

13 years agoam 38d710b5: Move the finger computation out of the bitmap scanning callback.
Carl Shapiro [Thu, 2 Sep 2010 01:53:47 +0000 (18:53 -0700)]
am 38d710b5: Move the finger computation out of the bitmap scanning callback.

Merge commit '38d710b524f2d9888e89b4ea0209f0b57025dab4' into gingerbread-plus-aosp

* commit '38d710b524f2d9888e89b4ea0209f0b57025dab4':
  Move the finger computation out of the bitmap scanning callback.

13 years agoam a634c852: Reduce the frequency of bitmap walk loop-bound computations.
Carl Shapiro [Thu, 2 Sep 2010 01:50:11 +0000 (18:50 -0700)]
am a634c852: Reduce the frequency of bitmap walk loop-bound computations.

Merge commit 'a634c852e985dcacf621c428c0597674bc5bfd77' into gingerbread-plus-aosp

* commit 'a634c852e985dcacf621c428c0597674bc5bfd77':
  Reduce the frequency of bitmap walk loop-bound computations.

13 years agoMove the finger computation out of the bitmap scanning callback.
Carl Shapiro [Tue, 31 Aug 2010 23:48:31 +0000 (16:48 -0700)]
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.

13 years agoam c44bca65: Improve the heap verifier\'s failure report.
Carl Shapiro [Thu, 2 Sep 2010 01:45:12 +0000 (18:45 -0700)]
am c44bca65: Improve the heap verifier\'s failure report.

Merge commit 'c44bca6530787454ee794cf2f83c1c6671a93aa8' into gingerbread-plus-aosp

* commit 'c44bca6530787454ee794cf2f83c1c6671a93aa8':
  Improve the heap verifier's failure report.

13 years agoReduce the frequency of bitmap walk loop-bound computations.
Carl Shapiro [Mon, 30 Aug 2010 18:10:45 +0000 (11:10 -0700)]
Reduce the frequency of bitmap walk loop-bound computations.

13 years agoam 57ee270b: Simplify the bitmap walker subroutines.
Carl Shapiro [Thu, 2 Sep 2010 01:41:16 +0000 (18:41 -0700)]
am 57ee270b: Simplify the bitmap walker subroutines.

Merge commit '57ee270b755271166b2349321e5b8b5457731dd7' into gingerbread-plus-aosp

* commit '57ee270b755271166b2349321e5b8b5457731dd7':
  Simplify the bitmap walker subroutines.

13 years agoam b2e78d39: Consistently refer to the mark context as ctx.
Carl Shapiro [Thu, 2 Sep 2010 01:39:20 +0000 (18:39 -0700)]
am b2e78d39: Consistently refer to the mark context as ctx.

Merge commit 'b2e78d39f6df19a6222b3cd4c7010864fb8cb55f' into gingerbread-plus-aosp

* commit 'b2e78d39f6df19a6222b3cd4c7010864fb8cb55f':
  Consistently refer to the mark context as ctx.

13 years agoam 5d81aa32: Collapse a variable declaration and initialization.
Carl Shapiro [Thu, 2 Sep 2010 01:39:17 +0000 (18:39 -0700)]
am 5d81aa32: Collapse a variable declaration and initialization.

Merge commit '5d81aa327a11f6e929c2396d34c343923268bdc3' into gingerbread-plus-aosp

* commit '5d81aa327a11f6e929c2396d34c343923268bdc3':
  Collapse a variable declaration and initialization.

13 years agoam 7511ae1e: Combine a typedef with a struct declaration.
Carl Shapiro [Thu, 2 Sep 2010 01:39:14 +0000 (18:39 -0700)]
am 7511ae1e: Combine a typedef with a struct declaration.

Merge commit '7511ae1ed686ccdf6cfefeabeede0cedb0c36b77' into gingerbread-plus-aosp

* commit '7511ae1ed686ccdf6cfefeabeede0cedb0c36b77':
  Combine a typedef with a struct declaration.

13 years agoam eff16fb8: Use symbolic constants when computing bits-per-word.
Carl Shapiro [Thu, 2 Sep 2010 01:39:07 +0000 (18:39 -0700)]
am eff16fb8: Use symbolic constants when computing bits-per-word.

Merge commit 'eff16fb843ec191508d2e8306b6dfd8209ede501' into gingerbread-plus-aosp

* commit 'eff16fb843ec191508d2e8306b6dfd8209ede501':
  Use symbolic constants when computing bits-per-word.

13 years agoam ca2d17e5: Merge "Bitmap naming clean-up." into gingerbread
Carl Shapiro [Thu, 2 Sep 2010 01:38:47 +0000 (18:38 -0700)]
am ca2d17e5: Merge "Bitmap naming clean-up." into gingerbread

Merge commit 'ca2d17e55ae11434c83e395867d3258f9b9b8474' into gingerbread-plus-aosp

* commit 'ca2d17e55ae11434c83e395867d3258f9b9b8474':
  Bitmap naming clean-up.

13 years agoam a1227409: Intrinsics for float/int and double/long conversions.
Elliott Hughes [Thu, 2 Sep 2010 01:38:33 +0000 (18:38 -0700)]
am a1227409: Intrinsics for float/int and double/long conversions.

Merge commit 'a1227409084c4a675cc83ada128f364506528b9c' into gingerbread-plus-aosp

* commit 'a1227409084c4a675cc83ada128f364506528b9c':
  Intrinsics for float/int and double/long conversions.

13 years agoImprove the heap verifier's failure report.
Carl Shapiro [Fri, 27 Aug 2010 22:21:13 +0000 (15:21 -0700)]
Improve the heap verifier's failure report.

Previously, when a reference verify failed we would print the location
of the bad reference and abort.  With this change, when a reference
fails to verify we try to print out more context.  First, we dump the
object which contains the bad references and print each reference that
failed verification.  Following that, we scan the roots and the heap
and print all of the objects which reference the bad object.

13 years agoSimplify the bitmap walker subroutines.
Carl Shapiro [Fri, 27 Aug 2010 20:06:48 +0000 (13:06 -0700)]
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.

13 years agoConsistently refer to the mark context as ctx.
Carl Shapiro [Fri, 20 Aug 2010 18:34:18 +0000 (11:34 -0700)]
Consistently refer to the mark context as ctx.

13 years agoCollapse a variable declaration and initialization.
Carl Shapiro [Fri, 20 Aug 2010 18:04:25 +0000 (11:04 -0700)]
Collapse a variable declaration and initialization.

13 years agoCombine a typedef with a struct declaration.
Carl Shapiro [Thu, 19 Aug 2010 23:54:01 +0000 (16:54 -0700)]
Combine a typedef with a struct declaration.

13 years agoUse symbolic constants when computing bits-per-word.
Carl Shapiro [Thu, 19 Aug 2010 21:29:41 +0000 (14:29 -0700)]
Use symbolic constants when computing bits-per-word.

13 years agoMerge "Bitmap naming clean-up." into gingerbread
Carl Shapiro [Thu, 2 Sep 2010 01:22:58 +0000 (18:22 -0700)]
Merge "Bitmap naming clean-up." into gingerbread

13 years agoBitmap naming clean-up.
Carl Shapiro [Thu, 19 Aug 2010 04:04:31 +0000 (21:04 -0700)]
Bitmap naming clean-up.

Disambiguate bitmaps based on their use by adding a "curr" or "prev"
prefix.  Also, fix names in a prototype to match the definition.

13 years agoIntrinsics for float/int and double/long conversions.
Elliott Hughes [Sat, 21 Aug 2010 01:47:36 +0000 (18:47 -0700)]
Intrinsics for float/int and double/long conversions.

[cherry-picked e22bd84c8c8a57ddd86c21a1f65137d549b07935 from dalvik-dev to gingerbread]

Bug: 2935622
Change-Id: Ib4de19033dc4a08f41bf0eb0f7a21dcde216aae3

13 years agoam 4a2b20a1: Let <stdbool.h> (or its substitute) get picked up via the preexisting...
Dan Bornstein [Wed, 1 Sep 2010 23:58:01 +0000 (16:58 -0700)]
am 4a2b20a1: Let <stdbool.h> (or its substitute) get picked up via the preexisting mechanism in vm/Common.h.

Merge commit '4a2b20a1128b13dbcda9e7d1114f4d60a02431ed' into gingerbread-plus-aosp

* commit '4a2b20a1128b13dbcda9e7d1114f4d60a02431ed':
  Let <stdbool.h> (or its substitute) get picked up via the preexisting

13 years agoLet <stdbool.h> (or its substitute) get picked up via the preexisting
Dan Bornstein [Wed, 1 Sep 2010 23:44:23 +0000 (16:44 -0700)]
Let <stdbool.h> (or its substitute) get picked up via the preexisting
mechanism in vm/Common.h.

Change-Id: I6b79ee3d67b23d8077567a1bce0a58ae46ceb7f3

13 years agoam ba2f27fb: Merge "Removal of more sampling profiler bits" into gingerbread
Brian Carlstrom [Wed, 1 Sep 2010 21:53:24 +0000 (14:53 -0700)]
am ba2f27fb: Merge "Removal of more sampling profiler bits" into gingerbread

Merge commit 'ba2f27fb008942b17e603accc08ba07b1e3f1ddc' into gingerbread-plus-aosp

* commit 'ba2f27fb008942b17e603accc08ba07b1e3f1ddc':
  Removal of more sampling profiler bits

13 years agoMerge "Removal of more sampling profiler bits" into gingerbread
Brian Carlstrom [Wed, 1 Sep 2010 21:24:13 +0000 (14:24 -0700)]
Merge "Removal of more sampling profiler bits" into gingerbread

13 years agoRemoval of more sampling profiler bits
Brian Carlstrom [Wed, 1 Sep 2010 17:49:48 +0000 (10:49 -0700)]
Removal of more sampling profiler bits

dalvik/vm/native/SystemThread.[ch] was added for the old sampling
profiler, and can be removed as it's not needed for the new one.

Bug: 2967741
Change-Id: Ibd306b4ba579f9796facbf7a69719b3cb6640762

13 years agoam f598f762: Merge "Split out the optimized dex file handling into its own file....
Dan Bornstein [Wed, 1 Sep 2010 18:55:49 +0000 (11:55 -0700)]
am f598f762: Merge "Split out the optimized dex file handling into its own file." into gingerbread

Merge commit 'f598f7627b02cacfcb1da56a712d6a1d48ec46ed' into gingerbread-plus-aosp

* commit 'f598f7627b02cacfcb1da56a712d6a1d48ec46ed':
  Split out the optimized dex file handling into its own file.

13 years agoMerge "Split out the optimized dex file handling into its own file." into gingerbread
Dan Bornstein [Wed, 1 Sep 2010 18:54:08 +0000 (11:54 -0700)]
Merge "Split out the optimized dex file handling into its own file." into gingerbread

13 years agoam 0f680873: New Java-based SamplingProfiler
Brian Carlstrom [Wed, 1 Sep 2010 17:44:45 +0000 (10:44 -0700)]
am 0f680873: New Java-based SamplingProfiler

Merge commit '0f68087322e3a43df3763d3500fc564d147793e7' into gingerbread-plus-aosp

* commit '0f68087322e3a43df3763d3500fc564d147793e7':
  New Java-based SamplingProfiler

13 years agoNew Java-based SamplingProfiler
Brian Carlstrom [Wed, 18 Aug 2010 21:27:25 +0000 (14:27 -0700)]
New Java-based SamplingProfiler

Summary:
- libcore: new Java based SamplingProfiler
- dalvik: remove old SamplingProfiler native bits
- frameworks/base: New placeholder SamplingProfilerIntegration
- vendor/google: remove old profiler snapshot parsing code

Details:

libcore

   A new 100% Java SamplingProfiler. While it has more overhead that
   the old native one, the new one can actually collect more than the
   current PC and frame pointer, so you can get useful context of
   where your app is spending time. It currently provides ASCII hprof
   format output for use with tools like PerfAnal
dalvik/src/main/java/dalvik/system/SamplingProfiler.java

    Unit test for the new SamplingProfiler
dalvik/src/test/java/dalvik/system/SamplingProfilerTest.java

    Add core-tests-dalvik
JavaLibrary.mk

dalvik

    Removing native code that supported the old SamplingProfiler
vm/Dvm.mk
vm/native/InternalNative.c
vm/native/dalvik_system_SamplingProfiler.c

frameworks/base

  Placeholder SamplingProfilerIntegration. Later plans include
  generating EventStackTrace protobufs.

    New SamplingProfiler does not have a global instance, so
    SamplingProfilerIntegration provides one in INSTANCE. Old binary
    snapshot format is temporily replaced with ASCII hprof data.
core/java/com/android/internal/os/SamplingProfilerIntegration.java

    Simplified interface for zygote profile snapshotting
core/java/com/android/internal/os/ZygoteInit.java

    Current SamplingProfilerIntegration does not track event loop
    explicitly, but hprof information does include thread information.
core/java/android/app/ActivityThread.java

vendor/google

    Removing code for parsing old SamplingProfiler snapshot format
tools/samplingprofiler/Android.mk
tools/samplingprofiler/NOTICE
tools/samplingprofiler/profiler.iml
tools/samplingprofiler/profiler.ipr
tools/samplingprofiler/pull-snapshots.sh
tools/samplingprofiler/sorttable.js
tools/samplingprofiler/src/com/android/profiler/PrintHtml.java

13 years agoAdd additional context to the contention event logging.
Carl Shapiro [Tue, 31 Aug 2010 22:11:46 +0000 (15:11 -0700)]
Add additional context to the contention event logging.

Previously it only included the victim of lock contention.  With this
change, it also includes the location of the person holding the lock
at the time the victim failed to acquire it.

Bug: 2964633
Change-Id: I888d9c3e7d7611ef5869870c7f8abfb19d236231

13 years agoSplit out the optimized dex file handling into its own file.
Dan Bornstein [Tue, 31 Aug 2010 23:50:00 +0000 (16:50 -0700)]
Split out the optimized dex file handling into its own file.

Also, make the optimized dex data area be consistently referred to as
the "opt" section instead of sometimes the "aux" section.

Change-Id: Id5589c13ce4b53d713f8186314ea886cd884c865

13 years agoam f36b5723: If there\'s an error dropping privileges, abort.
Nick Kralevich [Mon, 30 Aug 2010 21:19:06 +0000 (14:19 -0700)]
am f36b5723: If there\'s an error dropping privileges, abort.

Merge commit 'f36b57235b765c9eec3c001773b34c59cdefd87a' into gingerbread-plus-aosp

* commit 'f36b57235b765c9eec3c001773b34c59cdefd87a':
  If there's an error dropping privileges, abort.

13 years agoIf there's an error dropping privileges, abort.
Nick Kralevich [Mon, 30 Aug 2010 19:49:33 +0000 (12:49 -0700)]
If there's an error dropping privileges, abort.

Change-Id: I85ce12e93cb8c297add756dc3b872b8346eda00b

13 years agoam 1a509a4e: JIT: Add memory barriers on monitor enter/exit [issue 2951403]
buzbee [Fri, 27 Aug 2010 23:18:02 +0000 (16:18 -0700)]
am 1a509a4e: JIT: Add memory barriers on monitor enter/exit [issue 2951403]

Merge commit '1a509a4eb0fa468c5713553a7dec488a4e9d9a13' into gingerbread-plus-aosp

* commit '1a509a4eb0fa468c5713553a7dec488a4e9d9a13':
  JIT: Add memory barriers on monitor enter/exit [issue 2951403]

13 years agoJIT: Add memory barriers on monitor enter/exit [issue 2951403]
buzbee [Thu, 26 Aug 2010 17:46:51 +0000 (10:46 -0700)]
JIT: Add memory barriers on monitor enter/exit [issue 2951403]

Possibly the cause of [2950977 error in onDraw() method for stingray]

Change-Id: I3237c95a34daa75cd680b73d426dde11f3611a0e

13 years agoam 7eb3f7aa: Make JIT inliner work under single-stepping mode.
Ben Cheng [Fri, 27 Aug 2010 06:16:36 +0000 (23:16 -0700)]
am 7eb3f7aa: Make JIT inliner work under single-stepping mode.

Merge commit '7eb3f7aaf43f07caf0de05ba4ae59e8ea6add796' into gingerbread-plus-aosp

* commit '7eb3f7aaf43f07caf0de05ba4ae59e8ea6add796':
  Make JIT inliner work under single-stepping mode.

13 years agoam fc132a5e: Fix self-verification to handle loop traces with single-step instructions.
Ben Cheng [Fri, 27 Aug 2010 06:13:13 +0000 (23:13 -0700)]
am fc132a5e: Fix self-verification to handle loop traces with single-step instructions.

Merge commit 'fc132a5e75842b516c4021b2bbfa02e134c46040' into gingerbread-plus-aosp

* commit 'fc132a5e75842b516c4021b2bbfa02e134c46040':
  Fix self-verification to handle loop traces with single-step instructions.

13 years agoMake JIT inliner work under single-stepping mode.
Ben Cheng [Thu, 26 Aug 2010 21:56:31 +0000 (14:56 -0700)]
Make JIT inliner work under single-stepping mode.

Bug: 2936661

(cherry-picked from dalvik-dev)

Change-Id: I35a012bd4dba2a2f9541b96a2e787687bbc7cd19

13 years agoFix self-verification to handle loop traces with single-step instructions.
Ben Cheng [Thu, 26 Aug 2010 19:28:56 +0000 (12:28 -0700)]
Fix self-verification to handle loop traces with single-step instructions.

(cherry-picked from dalvik-dev)

Change-Id: If1414d0e6767d36e33db8837e52dc91d11b4969b

13 years agoam fe1d6d58: Add option for specifying wall-clock in method profiling.
Andy McFadden [Wed, 25 Aug 2010 22:02:05 +0000 (15:02 -0700)]
am fe1d6d58: Add option for specifying wall-clock in method profiling.

Merge commit 'fe1d6d586614fa51d82857e09128d6671be21d56' into gingerbread-plus-aosp

* commit 'fe1d6d586614fa51d82857e09128d6671be21d56':
  Add option for specifying wall-clock in method profiling.

13 years agoAdd option for specifying wall-clock in method profiling.
Andy McFadden [Wed, 25 Aug 2010 19:05:44 +0000 (12:05 -0700)]
Add option for specifying wall-clock in method profiling.

Normally you want to use the per-thread CPU clock rather than the wall
clock, because (a) it's more useful and (b) traceview goes a little nuts
if you don't.  However, it's useful for some performance testing.

The command-line option allows you to switch modes like this:

  % adb shell stop
  % adb shell setprop dalvik.vm.extra-opts -Xprofile:wallclock
  % adb shell start

This also changes the somewhat nebulous "clock=global" trace header line
to "clock=wall".  Nothing looks at this anyway so I'm not worried
about breaking compatibility.

While I was in here, I fixed a couple of problems caused by failure to
initialize data structures that made dmtracedump crash (yay valgrind).

Bug 2943229.

(cherry-pick from dalvik-dev)

Change-Id: I2f6657f7abe02f2a17784588d922b88397639a47

13 years agoam 9e02e4b1: Revert "JIT: Disable inlining to work around sholes boot crash"
Ben Cheng [Wed, 25 Aug 2010 21:14:31 +0000 (14:14 -0700)]
am 9e02e4b1: Revert "JIT: Disable inlining to work around sholes boot crash"

Merge commit '9e02e4b1fa08cebefa0f79cd407f4a88611cf473' into gingerbread-plus-aosp

* commit '9e02e4b1fa08cebefa0f79cd407f4a88611cf473':
  Revert "JIT: Disable inlining to work around sholes boot crash"

13 years agoRevert "JIT: Disable inlining to work around sholes boot crash"
Ben Cheng [Wed, 25 Aug 2010 20:01:54 +0000 (13:01 -0700)]
Revert "JIT: Disable inlining to work around sholes boot crash"

This reverts commit 07ecdc0b5d92099364eebdaee9aec297c4bbad72.

Random crash is confirmed to be caused by a Cortex-A8 bug. Toolchain fix is
pending and the current ToT is not triggering the crash.

(cherry-picked from dalvik-dev)

Change-Id: I12732a1fc2aa894a678bbb71e871e97f655c6814

13 years agoam 3ef3f182: Merge "Change the way thread suspension works." into gingerbread
Andy McFadden [Wed, 25 Aug 2010 19:21:49 +0000 (12:21 -0700)]
am 3ef3f182: Merge "Change the way thread suspension works." into gingerbread

Merge commit '3ef3f182b126be36acc5e1132bfff4857b442213' into gingerbread-plus-aosp

* commit '3ef3f182b126be36acc5e1132bfff4857b442213':
  Change the way thread suspension works.

13 years agoam 3b6ee1a4: Fix a DDMS thread monitoring crash.
Andy McFadden [Wed, 25 Aug 2010 19:21:45 +0000 (12:21 -0700)]
am 3b6ee1a4: Fix a DDMS thread monitoring crash.

Merge commit '3b6ee1a417a717c44e2a59ed73c930f4be8ea54b' into gingerbread-plus-aosp

* commit '3b6ee1a417a717c44e2a59ed73c930f4be8ea54b':
  Fix a DDMS thread monitoring crash.

13 years agoMerge "Change the way thread suspension works." into gingerbread
Andy McFadden [Wed, 25 Aug 2010 19:20:21 +0000 (12:20 -0700)]
Merge "Change the way thread suspension works." into gingerbread

13 years agoChange the way thread suspension works.
Andy McFadden [Mon, 23 Aug 2010 23:45:24 +0000 (16:45 -0700)]
Change the way thread suspension works.

There are at least three ways to handle detection of thread suspension
correctly: (1) hold a mutex, (2) pile all state into a single 32-bit
location and use atomic ops, and (3) order the operations carefully.
Of these, #3 has the least overhead on uniprocessors, so we're going
with that.

It does introduce one quirk, because we're now changing to "running"
mode before checking to see if we're allowed to run.  This creates
a tiny window of opportunity for assertions and thread dumps to see
what appears to be a thread that's running when it shouldn't be.
This is correctable with additional work (e.g. transitioning through
a pre-running state) but probably not worth worrying about.

This eliminates the separate self->isSuspended flag in favor of the
new THREAD_SUSPENDED thread state.

Bug 2667016.

(cherry-pick from dalvik-dev)

Change-Id: Ibc77ebbb03a7993bc4057c1c375498172ca8ff1c

13 years agoFix a DDMS thread monitoring crash.
Andy McFadden [Tue, 24 Aug 2010 21:23:11 +0000 (14:23 -0700)]
Fix a DDMS thread monitoring crash.

We changed the order of events during thread attaches, which means
it's now possible to have Thread structs with null threadObj fields.
This bit of code didn't change with the times, which made it possible
for a process being watched by DDMS to crash if we grabbed the thread
state at just the wrong time.

(cherry-pick from dalvik-dev)

Change-Id: Icd7f523ee8327f00693e601c1c82d3a8defb247f

13 years agoresolved conflicts for merge of aa63a6a6 to gingerbread-plus-aosp
Andy McFadden [Mon, 23 Aug 2010 21:06:47 +0000 (14:06 -0700)]
resolved conflicts for merge of aa63a6a6 to gingerbread-plus-aosp

Change-Id: Ib2f8c4c71a74987d284eba4be96ff4d329c40a50

13 years agoMerge "Added new bytecodes for the x86-atom fast interpreter build."
Jean-Baptiste Queru [Mon, 23 Aug 2010 20:31:40 +0000 (13:31 -0700)]
Merge "Added new bytecodes for the x86-atom fast interpreter build."

13 years agoam f16cfefc: Properly handle volatile field accesses from JNI.
Andy McFadden [Mon, 23 Aug 2010 14:54:41 +0000 (07:54 -0700)]
am f16cfefc: Properly handle volatile field accesses from JNI.

Merge commit 'f16cfefc199d1416c5f83446c1d299786accc737' into gingerbread-plus-aosp

* commit 'f16cfefc199d1416c5f83446c1d299786accc737':
  Properly handle volatile field accesses from JNI.

13 years agoProperly handle volatile field accesses from JNI.
Andy McFadden [Wed, 18 Aug 2010 22:51:37 +0000 (15:51 -0700)]
Properly handle volatile field accesses from JNI.

For uniprocessors, we need to use the 64-bit quasiatomic functions.  For
SMP, we need to do that and also issue barriers on all operations.

This was mostly a matter of adding a bunch of inline getter/setter
functions and then calling the right one based on whether or not the
field is declared volatile.

Also, corrected the output for a failing CHECK_CLASS test in CheckJNI.

Bug 2890631.

(cherry-pick from dalvik-dev)

Change-Id: I3da3b70c906eddd5934347caea83ab041d22cd68

13 years agoam 30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread
Brian Carlstrom [Fri, 20 Aug 2010 20:52:14 +0000 (13:52 -0700)]
am 30febfdf: Merge remote branch \'goog/dalvik-dev\' into dalvik-dev-to-gingerbread

Merge commit '30febfdf4abe39f99dec100de968cb831b555b27' into gingerbread-plus-aosp

* commit '30febfdf4abe39f99dec100de968cb831b555b27': (34 commits)
  Remove an assertion that cannot be guaranteed.
  Always support debugging and profiling.
  Fix a critical space leak introduced by concurrent sweeping.
  Add a little bit of paranoia to the odex data reader.
  Nudge a couple of log messages.
  Fix build breakage caused by the countInstancesOfClass change.
  Add a method for counting the extant instances of a class.
  Added fsync call to dexopt.
  JIT: Fix for armv5te-VFP bug [Issue 2916682]
  Cast to a byte pointer before performing arithmetic.
  Limit scanning to cards within the committed region of the heap.
  Remove a malfunctioning predicate used only in assertions.
  Remove debugging code and stale comments from the sweep callback.
  Fix build breakage caused by a bad merge from master.
  JIT: Correct conversion of cb[n]z to cmp/cond_br pair
  Sweep concurrently.
  Implement card table verification.
  Fix the ordering of lock acquisition in the heap worker.
  Print callee information in the JIT profile outout
  JIT: Fix for lightweight assembler retry mechanism.
  ...

13 years agoMerge remote branch 'goog/dalvik-dev' into dalvik-dev-to-gingerbread
Brian Carlstrom [Thu, 19 Aug 2010 18:21:12 +0000 (11:21 -0700)]
Merge remote branch 'goog/dalvik-dev' into dalvik-dev-to-gingerbread

Also includes cherry-pick of 07ecdc0b5d92099364eebdaee9aec297c4bbad72

Change-Id: Ie1744d78683f2f66dd1586f453f8bdd56ad2e9a5

13 years agoAdded new bytecodes for the x86-atom fast interpreter build.
Johnnie Birch [Mon, 2 Aug 2010 18:03:14 +0000 (11:03 -0700)]
Added new bytecodes for the x86-atom fast interpreter build.

Change-Id: Ided25c83d874eb02c78e01a0ea97dbb15ed30497

13 years agoRemove an assertion that cannot be guaranteed.
Carl Shapiro [Thu, 19 Aug 2010 01:10:05 +0000 (18:10 -0700)]
Remove an assertion that cannot be guaranteed.

The intention of this assert was to check that the address range
spanned by the mark bitmap was a proper superset of the live bitmap.
Because allocations can occur before these bitmaps are prepared, the
live bitmap may legitimately expand beyond the range of the mark
bitmap.  As such, this check is not reliable.

Change-Id: I2f23e9e7f3716a61ecf155ba81fd8baa5a82100d

13 years agoam 3e9bfe0b: Support dalvikvm on a Linux x86 host
Jesse Wilson [Thu, 19 Aug 2010 06:00:52 +0000 (23:00 -0700)]
am 3e9bfe0b: Support dalvikvm on a Linux x86 host

Merge commit '3e9bfe0bed2f27d01efdb03a71025c421d321956' into gingerbread-plus-aosp

* commit '3e9bfe0bed2f27d01efdb03a71025c421d321956':
  Support dalvikvm on a Linux x86 host

13 years agoSupport dalvikvm on a Linux x86 host
Jesse Wilson [Wed, 18 Aug 2010 18:35:23 +0000 (11:35 -0700)]
Support dalvikvm on a Linux x86 host

Change-Id: Id166ab03a01833e06ec1a9aa0059e4eb28ec04ce

13 years agoam ac830fea: Fix dx launching script to use the new platform-tools location.
Xavier Ducrohet [Thu, 19 Aug 2010 00:31:34 +0000 (17:31 -0700)]
am ac830fea: Fix dx launching script to use the new platform-tools location.

Merge commit 'ac830feace28957c9e84ce2cb0ed2a565bc24c99' into gingerbread-plus-aosp

* commit 'ac830feace28957c9e84ce2cb0ed2a565bc24c99':
  Fix dx launching script to use the new platform-tools location.

13 years agoFix dx launching script to use the new platform-tools location.
Xavier Ducrohet [Wed, 18 Aug 2010 22:42:19 +0000 (15:42 -0700)]
Fix dx launching script to use the new platform-tools location.

Change-Id: Ia4d316b0fb5193dc412aa5374fc270c5b10f70e5

13 years agoAlways support debugging and profiling.
Andy McFadden [Wed, 18 Aug 2010 19:19:51 +0000 (12:19 -0700)]
Always support debugging and profiling.

This eliminates the use of the WITH_DEBUGGER and WITH_PROFILER
conditional compilation flags.  We've never shipped a device without
these features, and it's unlikely we ever will.  They're not worth
the code clutter they cause.

As usual, since I can't test the x86-atom code I left that alone and
added an item to the TODO list.

Bug 2923442.

Change-Id: I335ebd5193bc86f7641513b1b41c0378839be1fe

13 years agoMerge "Nudge a couple of log messages." into dalvik-dev
Andy McFadden [Wed, 18 Aug 2010 14:45:17 +0000 (07:45 -0700)]
Merge "Nudge a couple of log messages." into dalvik-dev

13 years agoMerge "Fix a critical space leak introduced by concurrent sweeping." into dalvik-dev
Carl Shapiro [Wed, 18 Aug 2010 05:47:23 +0000 (22:47 -0700)]
Merge "Fix a critical space leak introduced by concurrent sweeping." into dalvik-dev

13 years agoFix a critical space leak introduced by concurrent sweeping.
Carl Shapiro [Wed, 18 Aug 2010 01:33:56 +0000 (18:33 -0700)]
Fix a critical space leak introduced by concurrent sweeping.

When computing the bitmaps for each heap, the live bitmap was assumed
to have greater extent than the mark bitmap.  With the concurrent
sweep the mark and live bitmaps are swapped before the sweep bitmaps
are computed.  As such, the live bitmap extent is always less than or
equal to the mark bitmap.  A benchmark which loops creating objects
just to drop them on the floor will exclude most objects in the heap
as candidates for sweeping and will exhaust the heap.

The change fixes the extent computation and reintroduces an assert to
check that the bitmap we assume to be the largest is the largest.

Change-Id: I78694d2a0550de70c85e2087d482050a147a207a

13 years agoMerge "Add a little bit of paranoia to the odex data reader." into dalvik-dev
Dan Bornstein [Tue, 17 Aug 2010 22:06:15 +0000 (15:06 -0700)]
Merge "Add a little bit of paranoia to the odex data reader." into dalvik-dev

13 years agoAdd a little bit of paranoia to the odex data reader.
Dan Bornstein [Tue, 17 Aug 2010 00:11:06 +0000 (17:11 -0700)]
Add a little bit of paranoia to the odex data reader.

This prevents some potential segfaults when working with (e.g., trying
to run) corrupted dex files, turning them into more informative error
messages.

Change-Id: Ie6845087bb17a5f65fafbd6f9ff335b6af489996

13 years agoNudge a couple of log messages.
Andy McFadden [Tue, 17 Aug 2010 00:04:01 +0000 (17:04 -0700)]
Nudge a couple of log messages.

Also, don't show errno on a short read.

Related to bug 2916809.

Change-Id: I163906d47b698ac5e77202c323db5823196169bb