OSDN Git Service

android-x86/art.git
10 years agoMerge "Decrease target utilization for foreground apps."
Mathieu Chartier [Wed, 16 Apr 2014 22:01:38 +0000 (22:01 +0000)]
Merge "Decrease target utilization for foreground apps."

10 years agoDecrease target utilization for foreground apps.
Mathieu Chartier [Tue, 15 Apr 2014 22:37:02 +0000 (15:37 -0700)]
Decrease target utilization for foreground apps.

GC time in FormulaEvaluationActions.EvaluateAndApplyChanges goes from
26.1s to 23.2s. Benchmark score goes down ~50 in
FormulaEvaluationActions.EvaluateAndApplyChanges, and up ~50 in
GenericCalcActions.MemAllocTest.

Bug: 8788501
Change-Id: I412af1205f8b67e70a12237c990231ea62167bc0

10 years agoMerge "Fix thread join hangs"
Ian Rogers [Wed, 16 Apr 2014 19:14:21 +0000 (19:14 +0000)]
Merge "Fix thread join hangs"

10 years agoMerge "Fix typo in ISA centralization"
Andreas Gampe [Wed, 16 Apr 2014 18:35:07 +0000 (18:35 +0000)]
Merge "Fix typo in ISA centralization"

10 years agoFix typo in ISA centralization
Andreas Gampe [Wed, 16 Apr 2014 18:23:27 +0000 (11:23 -0700)]
Fix typo in ISA centralization

X86 needs sign-extension.

Change-Id: I1253fbc9aa0e732e37b976a0723ec89155e7e2e7

10 years agoMerge "Centralize instruction-set pointer-size, alignment, 64b-width code in instruct...
Andreas Gampe [Wed, 16 Apr 2014 15:18:13 +0000 (15:18 +0000)]
Merge "Centralize instruction-set pointer-size, alignment, 64b-width code in instruction_set.h/cc"

10 years agoMerge "Long support in optimizing compiler."
Nicolas Geoffray [Wed, 16 Apr 2014 13:22:37 +0000 (13:22 +0000)]
Merge "Long support in optimizing compiler."

10 years agoLong support in optimizing compiler.
Nicolas Geoffray [Fri, 11 Apr 2014 16:43:50 +0000 (17:43 +0100)]
Long support in optimizing compiler.

- Add stack locations to the Location class.
- Change logic of parameter passing/setup by setting the
  location of such instructions the ones for the calling
  convention.

Change-Id: I4730ad58732813dcb9c238f44f55dfc0baa18799

10 years agoFix thread join hangs
Yevgeny Rouban [Wed, 16 Apr 2014 11:26:09 +0000 (18:26 +0700)]
Fix thread join hangs

Current implementation notifies only one of joining threads on thread exit.
This causes the other joining threads to hang.

This patch notifies all joining threads: just call NotifyAll() instead of Notify().

Change-Id: If75f101d3d3d876f1aa7dcf537e56a37cc347803
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
10 years agoMerge "Disable JDWP field watchpoint capabilities"
Sebastien Hertz [Wed, 16 Apr 2014 10:10:28 +0000 (10:10 +0000)]
Merge "Disable JDWP field watchpoint capabilities"

10 years agoDisable JDWP field watchpoint capabilities
Sebastien Hertz [Wed, 16 Apr 2014 10:03:00 +0000 (12:03 +0200)]
Disable JDWP field watchpoint capabilities

We do not fully support field watchpoint yet. We can only enable these
capabilities when we do report these events.

Bug: 8267708
Change-Id: I07ccf7ddffdd26e143b7fb0f13ebe030d75e8491

10 years agoMerge "Allow use of instance filter for JDWP events"
Sebastien Hertz [Wed, 16 Apr 2014 08:08:11 +0000 (08:08 +0000)]
Merge "Allow use of instance filter for JDWP events"

10 years agoMerge "Fix JDWP count event modifier"
Sebastien Hertz [Wed, 16 Apr 2014 07:29:10 +0000 (07:29 +0000)]
Merge "Fix JDWP count event modifier"

10 years agoMerge "Less confusing heap transition message."
Mathieu Chartier [Tue, 15 Apr 2014 21:51:48 +0000 (21:51 +0000)]
Merge "Less confusing heap transition message."

10 years agoLess confusing heap transition message.
Mathieu Chartier [Tue, 15 Apr 2014 19:40:17 +0000 (12:40 -0700)]
Less confusing heap transition message.

The heap transition message now just says how long the transition
took and up to how much memory was saved (it can still be negative).

Change-Id: If421dcc2aa9cc40740b858dcc2ff1b8e595f9a40

10 years agoMerge "Don't call SetFootprintLimit in CreateZygoteSpace."
Mathieu Chartier [Tue, 15 Apr 2014 19:17:01 +0000 (19:17 +0000)]
Merge "Don't call SetFootprintLimit in CreateZygoteSpace."

10 years agoDon't call SetFootprintLimit in CreateZygoteSpace.
Mathieu Chartier [Tue, 15 Apr 2014 19:01:58 +0000 (12:01 -0700)]
Don't call SetFootprintLimit in CreateZygoteSpace.

Since SetFootprintLimit uses the allocators accounting it can set a
word inside of the zygote space mem map. This was causing issues
since it was occasionally clobbering one of the object classes. This
occured since we compact objects into the space which was used by the
allocator's internal accounting during zygote bin packing.

Also addressed some TODO.

Bug: 14056343
Change-Id: I9fc5a61174fa141c0f44d0ed0ae0cc6d77cb4e0a

10 years agoAllow use of instance filter for JDWP events
Sebastien Hertz [Fri, 11 Apr 2014 10:07:41 +0000 (12:07 +0200)]
Allow use of instance filter for JDWP events

Bug: 13922844
Change-Id: Ic4e6d7af7c80928c25417db5f43049614d225c97

10 years agoFix JDWP count event modifier
Sebastien Hertz [Tue, 15 Apr 2014 14:03:27 +0000 (16:03 +0200)]
Fix JDWP count event modifier

Bug: 14053614
Change-Id: I736f6d6802e58e7a4fb29d0558bdd2abd3b2a48e

10 years agoMerge "Prepare field watchpoint support"
Sebastien Hertz [Tue, 15 Apr 2014 06:43:14 +0000 (06:43 +0000)]
Merge "Prepare field watchpoint support"

10 years agoPrepare field watchpoint support
Sebastien Hertz [Fri, 4 Apr 2014 15:50:18 +0000 (17:50 +0200)]
Prepare field watchpoint support

Adds field read/write events in the instrumentation. The debugger now registers
as a listener for these events so JDWP field access and field modification
events can be reported.

This CL will be followed by another one to report these events from the
interpreter. Therefore no JDWP field access and field modification events
can be sent for now.

Bug: 8267708
Change-Id: If2a93eb590805567d69015c83cce9cd2ab712cbd

10 years agoMerge "Clear unused roots from debugger"
Sebastien Hertz [Tue, 15 Apr 2014 06:29:54 +0000 (06:29 +0000)]
Merge "Clear unused roots from debugger"

10 years agoMerge "Deduplicate code starting JDWP thread"
Sebastien Hertz [Tue, 15 Apr 2014 06:29:43 +0000 (06:29 +0000)]
Merge "Deduplicate code starting JDWP thread"

10 years agoMerge "Fix clang build."
Mathieu Chartier [Mon, 14 Apr 2014 23:51:15 +0000 (23:51 +0000)]
Merge "Fix clang build."

10 years agoFix clang build.
Mathieu Chartier [Mon, 14 Apr 2014 22:52:08 +0000 (15:52 -0700)]
Fix clang build.

Change-Id: Iaf0b76cfc02bac5f49ab98d494db9a774211f453

10 years agoMerge "art_quick_unlock_object uses comparison incorrectly"
Ian Rogers [Mon, 14 Apr 2014 22:26:07 +0000 (22:26 +0000)]
Merge "art_quick_unlock_object uses comparison incorrectly"

10 years agoMerge "Refactor space bitmap to support different alignments."
Mathieu Chartier [Mon, 14 Apr 2014 19:02:50 +0000 (19:02 +0000)]
Merge "Refactor space bitmap to support different alignments."

10 years agoMerge "Reduce bump pointer space capacity."
Mathieu Chartier [Mon, 14 Apr 2014 19:02:30 +0000 (19:02 +0000)]
Merge "Reduce bump pointer space capacity."

10 years agoReduce bump pointer space capacity.
Mathieu Chartier [Mon, 14 Apr 2014 18:30:39 +0000 (11:30 -0700)]
Reduce bump pointer space capacity.

Bug: 14058912
Change-Id: I7ae53e667539530d56ca2f5d10214e69c9c994e2

10 years agoMerge "Recognize and ignore options '-ea' and '-da'"
Brian Carlstrom [Mon, 14 Apr 2014 18:44:19 +0000 (18:44 +0000)]
Merge "Recognize and ignore options '-ea' and '-da'"

10 years agoCentralize instruction-set pointer-size, alignment, 64b-width code
Andreas Gampe [Fri, 11 Apr 2014 19:07:48 +0000 (12:07 -0700)]
Centralize instruction-set pointer-size, alignment, 64b-width code
in instruction_set.h/cc

This allows to clean up some places that currently make explicit
comparisons.

Change-Id: I0dcc924c52fa53306f706aceea93a2d4a655c5df

10 years agoRecognize and ignore options '-ea' and '-da'
Yevgeny Rouban [Mon, 24 Mar 2014 04:31:24 +0000 (11:31 +0700)]
Recognize and ignore options '-ea' and '-da'

-ea:<package or class> and -da:<package or class> options are ignored.

This patch just adds -ea and -da options without any package or
class specified.

Change-Id: Ide04b8eacb1b2edb415328130bc12e05dc3ddc7b
Signed-off-by: Yevgeny Rouban <yevgeny.y.rouban@intel.com>
10 years agoRefactor space bitmap to support different alignments.
Mathieu Chartier [Wed, 9 Apr 2014 21:51:05 +0000 (14:51 -0700)]
Refactor space bitmap to support different alignments.

Required for:
Using space bitmaps instead of std::set in mod union table +
remembered set.
Using a bitmap instead of set for large object marking.

Bug: 13571028

Change-Id: Id024e9563d4ca4278f79607cdb2f81895121b113

10 years agoDeduplicate code starting JDWP thread
Sebastien Hertz [Mon, 14 Apr 2014 12:38:24 +0000 (14:38 +0200)]
Deduplicate code starting JDWP thread

Also waits for thread_start_cond_ in a loop and removes needless mutex lock in
JdwpState::Run when checking thread state.

Change-Id: I6fca2151b5343b2906e9fa3b439029e6ad5b086d

10 years agoClear unused roots from debugger
Sebastien Hertz [Mon, 14 Apr 2014 09:59:08 +0000 (11:59 +0200)]
Clear unused roots from debugger

SingleStepControl and DebugInvokeReq hold roots which are only used during a
limited amount of time. Clear these roots once we finish using them.

Also cleans some code around single-step.

Change-Id: Ica2f65e04a4d60272199490cd40ad1803d3b9f02

10 years agoMerge "Fix hammerhead phone boot on master."
Mathieu Chartier [Sat, 12 Apr 2014 01:09:46 +0000 (01:09 +0000)]
Merge "Fix hammerhead phone boot on master."

10 years agoFix hammerhead phone boot on master.
Mathieu Chartier [Sat, 12 Apr 2014 01:06:01 +0000 (18:06 -0700)]
Fix hammerhead phone boot on master.

Wasn't failing on AOSP.

Change-Id: I8e531bf7493d36dc2667afeaf3133ce8560a2ce1

10 years agoMerge "Fix heap verification with SS/GSS."
Mathieu Chartier [Sat, 12 Apr 2014 00:16:55 +0000 (00:16 +0000)]
Merge "Fix heap verification with SS/GSS."

10 years agoFix heap verification with SS/GSS.
Mathieu Chartier [Fri, 11 Apr 2014 23:42:46 +0000 (16:42 -0700)]
Fix heap verification with SS/GSS.

Since I had removed the SwapSemiSpaces it was trying to verify
references in the from space of the semispace collector, which isn't
necessarily valid.

Bug: 13989162

Change-Id: I8e0b7119a1a53d63f2c71ecdb276290eda5bae07

10 years agoMerge "Fix an occasional ThreadStress crash."
Hiroshi Yamauchi [Fri, 11 Apr 2014 22:43:08 +0000 (22:43 +0000)]
Merge "Fix an occasional ThreadStress crash."

10 years agoMerge "Clean-up heap spaces."
Mathieu Chartier [Fri, 11 Apr 2014 22:40:43 +0000 (22:40 +0000)]
Merge "Clean-up heap spaces."

10 years agoFix an occasional ThreadStress crash.
Hiroshi Yamauchi [Fri, 11 Apr 2014 22:31:09 +0000 (15:31 -0700)]
Fix an occasional ThreadStress crash.

Also, fix the NativeAllocations test for the case with the GSS
collector as the default GC. Since kGcCauseForAlloc (incorrect) was
being passed into the collector instead of kGcCauseForNativeAlloc
(correct) from Heap::RegisterNativeAllocation(), the GCC collector
never invoked a whole heap collection which was necessary to do
sufficent finalizations to pass the test.

Bug: 13988451
Bug: 11650816
Change-Id: Ib02f061751cd777e0d3bfa81b29e04a874dc58a0

10 years agoClean-up heap spaces.
Mathieu Chartier [Tue, 8 Apr 2014 21:40:03 +0000 (14:40 -0700)]
Clean-up heap spaces.

We now use the CMS collector instead of the semispace collector when
the phone is booting. We still perform compaction during the zygote
space creation. This reduces time spent in GC by ~2s during boot
and doesn't affect zygote space size.

Changed the space creation logic to create the temp space when a
background transition occurs.

Added a flag to each space which is true if you are allowed to
move objects that are within this space.

Removed SwapSemiSpaces call from the semi space collector, it is now
the job of the caller to do this with threads suspended. This
simplifies the logic in the zygote compaction / heap transition code
since these do not copy from one semispace to another.

Added Space::Clear to RosAllocSpace and DlMallocSpace. This greatly
simplifies the code used for collector transitions.

Time spent in GC creating zygote space:
Before: 3.4s, After: 1.28s
No change in zygote space size.

Bug: 13878055

Change-Id: I700348ab7d5bf3aa537c0cd70c0fed09aa4b0623

10 years agoMerge "AArch64: List arm64 as instruction set option"
Andreas Gampe [Fri, 11 Apr 2014 14:22:52 +0000 (14:22 +0000)]
Merge "AArch64: List arm64 as instruction set option"

10 years agoAArch64: List arm64 as instruction set option
Stuart Monteith [Fri, 11 Apr 2014 10:16:58 +0000 (11:16 +0100)]
AArch64: List arm64 as instruction set option

When arm64 was added to dex2oat, it wasn't added to the list of
instruction sets in the help text. This adds it.

Change-Id: I9ffecb67a053b24ad624effd1853ff47331d2e91
Signed-off-by: Stuart Monteith <stuart.monteith@arm.com>
10 years agoMerge "Prevent deadlocks in Runtime::Abort."
Mathieu Chartier [Fri, 11 Apr 2014 01:22:08 +0000 (01:22 +0000)]
Merge "Prevent deadlocks in Runtime::Abort."

10 years agoPrevent deadlocks in Runtime::Abort.
Mathieu Chartier [Fri, 11 Apr 2014 01:06:32 +0000 (18:06 -0700)]
Prevent deadlocks in Runtime::Abort.

If we have the threads suspended, attempting to use a
ScopedObjectAccess causes a deadlock. We now specifically avoid this
to prevent deadlocks.

Bug: 13747880
Change-Id: I45fd3fff917da98b22970e5351a9e25b143a4eed

10 years agoMerge "AArch64: Jni compiler fixes"
Andreas Gampe [Fri, 11 Apr 2014 00:15:54 +0000 (00:15 +0000)]
Merge "AArch64: Jni compiler fixes"

10 years agoAArch64: Jni compiler fixes
Serban Constantinescu [Wed, 9 Apr 2014 17:39:10 +0000 (18:39 +0100)]
AArch64: Jni compiler fixes

This patch fixes some of the issues with the ARM64 assembler and JNI
compiler.

The JNI compiler is not enabled by default, yet. To enable, change
line 1884 in compiler/driver/compiler_driver.cc, removing kArm64 from
the GenericJNI list.

The compiler passes all tests in jni_compiler_test.

Also change the common_compiler_test instruction-set-features logic.
We allow tests when the build-time features are a subset of the
runtime features.

Dex2oat cross-compiling is now working. A 32b version of dex2oat should
be able to compile correctly.

Change-Id: I51d1c24f2c75d4397a11c54724a8b277ff3b3df8
Signed-off-by: Serban Constantinescu <serban.constantinescu@arm.com>
10 years agoMerge "Insert read barriers in more places."
Hiroshi Yamauchi [Thu, 10 Apr 2014 22:54:57 +0000 (22:54 +0000)]
Merge "Insert read barriers in more places."

10 years agoInsert read barriers in more places.
Hiroshi Yamauchi [Thu, 10 Apr 2014 19:46:22 +0000 (12:46 -0700)]
Insert read barriers in more places.

Bug: 12687968
Change-Id: If3ffca4741e039f314ac848551c481d44cbcd3ca

10 years agoMerge "Fix race condition in TransitionCollector."
Mathieu Chartier [Thu, 10 Apr 2014 21:48:33 +0000 (21:48 +0000)]
Merge "Fix race condition in TransitionCollector."

10 years agoMerge "Fix problem with empty profiles."
Dave Allison [Thu, 10 Apr 2014 21:20:57 +0000 (21:20 +0000)]
Merge "Fix problem with empty profiles."

10 years agoFix problem with empty profiles.
Dave Allison [Thu, 10 Apr 2014 20:06:10 +0000 (13:06 -0700)]
Fix problem with empty profiles.

This fixes an issue where a profile file was created by the installer
but never written by the runtime.  This happens when profiles are off.
This caused the compiler to think that there are no methods worthy
of compilation and skipped everything.

Bug: 13960166
Change-Id: I4c4598d4746218e21ca949112071dc1424d7d1f9

10 years agoFix race condition in TransitionCollector.
Mathieu Chartier [Thu, 10 Apr 2014 17:56:55 +0000 (10:56 -0700)]
Fix race condition in TransitionCollector.

There was a race condition where if multiple threads were calling
TransitionCollector it could cause a crash due to an invalid
collector transition if another thread did the collector transition
before the SuspendAll.

Bug: 13929101
Change-Id: I8c162a83c1f53d0cbdefab62b0a5bcbb151d6c42

10 years agoMerge "art: Use SIRT::GetAlignedSirtSizeTarget in calling convention"
Andreas Gampe [Thu, 10 Apr 2014 19:08:26 +0000 (19:08 +0000)]
Merge "art: Use SIRT::GetAlignedSirtSizeTarget in calling convention"

10 years agoart: Use SIRT::GetAlignedSirtSizeTarget in calling convention
Dmitry Petrochenko [Thu, 3 Apr 2014 07:35:54 +0000 (14:35 +0700)]
art: Use SIRT::GetAlignedSirtSizeTarget in calling convention

Calculate frame size based on SIRT::GetAlignedSirtSizeTarget existing method.

Make offset functions pointer-size-dependent for cross-compiling. Add
a test to check whether our computations are correct.

Change-Id: Ic66daf6f9908890eda906bdcbbc4444c4fef614f
Signed-off-by: Dmitry Petrochenko <dmitry.petrochenko@intel.com>
10 years agoart_quick_unlock_object uses comparison incorrectly
Serguei Katkov [Mon, 7 Apr 2014 03:14:08 +0000 (10:14 +0700)]
art_quick_unlock_object uses comparison incorrectly

art_quick_unlock_object incrrectly checks the thin lock condition.
The patch fixes this issue.

Change-Id: I9e2fcf89c9e9cb34aca72ed001672fd83cd53377
Signed-off-by: Serguei Katkov <serguei.i.katkov@intel.com>
10 years agoMerge "AArch64 code alignment is 4 for OatWriter"
Andreas Gampe [Thu, 10 Apr 2014 02:16:32 +0000 (02:16 +0000)]
Merge "AArch64 code alignment is 4 for OatWriter"

10 years agoAArch64 code alignment is 4 for OatWriter
Andreas Gampe [Thu, 10 Apr 2014 00:28:11 +0000 (17:28 -0700)]
AArch64 code alignment is 4 for OatWriter

OatWriter DCHECKs against ARM alignment, which is 8 and <= all
other architectures *except* AArch64, so that was fine before.

Change-Id: I55a11fe60cfbec889f2e8d8b0f489fe0930ebf6f

10 years agoMerge "Change FindClass in GetQuickInvokedMethod to use reg_types_."
Mathieu Chartier [Thu, 10 Apr 2014 00:03:56 +0000 (00:03 +0000)]
Merge "Change FindClass in GetQuickInvokedMethod to use reg_types_."

10 years agoMerge "Revert "Revert "Revert "Use trampolines for calls to helpers""""
Dave Allison [Wed, 9 Apr 2014 23:36:43 +0000 (23:36 +0000)]
Merge "Revert "Revert "Revert "Use trampolines for calls to helpers""""

10 years agoRevert "Revert "Revert "Use trampolines for calls to helpers"""
Dave Allison [Wed, 9 Apr 2014 23:36:15 +0000 (23:36 +0000)]
Revert "Revert "Revert "Use trampolines for calls to helpers"""

This reverts commit f9487c039efb4112616d438593a2ab02792e0304.

Change-Id: Id48a4aae4ecce73db468587967968a3f7618b700

10 years agoChange FindClass in GetQuickInvokedMethod to use reg_types_.
Mathieu Chartier [Wed, 9 Apr 2014 22:45:08 +0000 (15:45 -0700)]
Change FindClass in GetQuickInvokedMethod to use reg_types_.

FindClass can do ScopedThreadStateChange which causes check failures
during SIGQUIT.

Bug: 13929160
Change-Id: I00be4972423c04254a922de3aa731e8edb38ca02

10 years agoMerge "Add mean GC duration to DumpGcPerformanceInfo."
Mathieu Chartier [Wed, 9 Apr 2014 22:30:26 +0000 (22:30 +0000)]
Merge "Add mean GC duration to DumpGcPerformanceInfo."

10 years agoMerge "Revert "Revert "Use trampolines for calls to helpers"""
Dave Allison [Wed, 9 Apr 2014 21:05:36 +0000 (21:05 +0000)]
Merge "Revert "Revert "Use trampolines for calls to helpers"""

10 years agoMerge "Switch profiler off by default"
Dave Allison [Wed, 9 Apr 2014 21:04:43 +0000 (21:04 +0000)]
Merge "Switch profiler off by default"

10 years agoSwitch profiler off by default
Dave Allison [Wed, 9 Apr 2014 20:51:55 +0000 (13:51 -0700)]
Switch profiler off by default

Change-Id: I40fdbfa1145a2e80644125932756b8ec7eafd4a2

10 years agoRevert "Revert "Use trampolines for calls to helpers""
Dave Allison [Tue, 8 Apr 2014 23:08:12 +0000 (23:08 +0000)]
Revert "Revert "Use trampolines for calls to helpers""

This reverts commit 081f73e888b3c246cf7635db37b7f1105cf1a2ff.

Change-Id: Ibd777f8ce73cf8ed6c4cb81d50bf6437ac28cb61

Conflicts:
compiler/dex/quick/mir_to_lir.h

10 years agoAdd mean GC duration to DumpGcPerformanceInfo.
Mathieu Chartier [Wed, 9 Apr 2014 18:41:49 +0000 (11:41 -0700)]
Add mean GC duration to DumpGcPerformanceInfo.

Change-Id: Ibd68e9d8cae71d0ceb769fc975f1148287e9ca4a

10 years agoMerge "ARM64: Fix array out of bounds access in DoLongJump"
Andreas Gampe [Wed, 9 Apr 2014 18:03:22 +0000 (18:03 +0000)]
Merge "ARM64: Fix array out of bounds access in DoLongJump"

10 years agoMerge "Adjust sticky GC ergonomics."
Mathieu Chartier [Wed, 9 Apr 2014 17:54:10 +0000 (17:54 +0000)]
Merge "Adjust sticky GC ergonomics."

10 years agoARM64: Fix array out of bounds access in DoLongJump
Andreas Gampe [Wed, 9 Apr 2014 17:25:11 +0000 (10:25 -0700)]
ARM64: Fix array out of bounds access in DoLongJump

Only copy the "real" 32 registers, not the virtual 33rd XZR.

Change-Id: I911a56e3ae3a4e76fd29da5eb7caae5c000fdc28

10 years agoAdjust sticky GC ergonomics.
Mathieu Chartier [Tue, 8 Apr 2014 20:44:04 +0000 (13:44 -0700)]
Adjust sticky GC ergonomics.

Added an adjustment factor that causes sticky GC to occur more often.
Currently, we adjust the throughput by 5 / 4 comapred to the non
sticky GC. This improves the MemAllocTest score by 50-100. I believe
this happens since the sticky GC uses less memory bandwidth than
partial/full GC. No benchmark score regression on
EvaluateAndApplyChanges though total GC time is increased by ~0.5s.

Bug: 13818507
Change-Id: Ic721a1bff069ddaf8acc55e776b8bc26e171d46e

10 years agoMerge "GSS: Fix the bump pointer space only collection."
Hiroshi Yamauchi [Wed, 9 Apr 2014 00:04:32 +0000 (00:04 +0000)]
Merge "GSS: Fix the bump pointer space only collection."

10 years agoMerge "Fix ARM64 invoke stubs, correct CFI directives"
Andreas Gampe [Tue, 8 Apr 2014 23:41:06 +0000 (23:41 +0000)]
Merge "Fix ARM64 invoke stubs, correct CFI directives"

10 years agoGSS: Fix the bump pointer space only collection.
Hiroshi Yamauchi [Tue, 8 Apr 2014 23:21:52 +0000 (16:21 -0700)]
GSS: Fix the bump pointer space only collection.

Fixes b/13912464 where the clear soft reference behavior accidentally
disabled the bump pointer space only collection.

Changed the collector name so that the GC logs would indicate the
generational mode and the collection mode.

Peformance enhancement: instead of triggering the whole heap
collection every 5 collections, count the bytes promoted since the
last whole heap collection and use it to decide when to trigger the
whole heap collection. This improves MemAllocTest by 5-10% (N4 and
host).

Bug: 13912464
Bug: 11650816
Bug: 9986565
Change-Id: I653a0dca62a8b54adf69abe2940a41eac70f809b

10 years agoFix ARM64 invoke stubs, correct CFI directives
Andreas Gampe [Mon, 7 Apr 2014 19:08:28 +0000 (12:08 -0700)]
Fix ARM64 invoke stubs, correct CFI directives

The stubs do not advance over the arguments array when they cannot
place the parameter in a register. Fixed.

Changed the frame code for the invoke stubs so that CFI is easier
to apply. Also defined two macros to unite the parts that are
identical between static and dynamic invoke. With moving one statement
and accepting 12B increased (dead) code size one could almost fully
unite the implementations.

Corrected CFI directives for the CALLEE_SAVE macros.

Change-Id: Idf593fc46f0b6e1eb579010d0cdcf9c1a71730b1

10 years agoMerge "Reset GC timings after SIGQUIT."
Mathieu Chartier [Tue, 8 Apr 2014 19:30:43 +0000 (19:30 +0000)]
Merge "Reset GC timings after SIGQUIT."

10 years agoMerge "Better error reporting when loading dex files"
Andreas Gampe [Tue, 8 Apr 2014 19:29:40 +0000 (19:29 +0000)]
Merge "Better error reporting when loading dex files"

10 years agoBetter error reporting when loading dex files
Andreas Gampe [Tue, 8 Apr 2014 17:32:19 +0000 (10:32 -0700)]
Better error reporting when loading dex files

Collect all partial error messages and return them as cause
exceptions for the top-level exception returned.

Change-Id: I9661b8aed2a571dc88bf0f06d447108eeaed1409

10 years agoReset GC timings after SIGQUIT.
Mathieu Chartier [Tue, 8 Apr 2014 18:14:54 +0000 (11:14 -0700)]
Reset GC timings after SIGQUIT.

We now reset the GC timings when a SIGQUIT happens, this is useful
for excluding GCs which happen during the initialization of an app
when measuring GC performance.

Change-Id: I68c79bdb279290c12ae588bc7e95ac24908c157e

10 years agoMerge "ART: A workaround for a wrongly-read caller's frame"
Andreas Gampe [Tue, 8 Apr 2014 14:55:16 +0000 (14:55 +0000)]
Merge "ART: A workaround for a wrongly-read caller's frame"

10 years agoMerge "Tweaked profile significant_difference."
Calin Juravle [Tue, 8 Apr 2014 13:37:43 +0000 (13:37 +0000)]
Merge "Tweaked profile significant_difference."

10 years agoMerge "Profile: made startImmediately settable"
Calin Juravle [Tue, 8 Apr 2014 13:37:27 +0000 (13:37 +0000)]
Merge "Profile: made startImmediately settable"

10 years agoMerge "Test control flow instruction with optimizing compiler."
Nicolas Geoffray [Tue, 8 Apr 2014 07:53:48 +0000 (07:53 +0000)]
Merge "Test control flow instruction with optimizing compiler."

10 years agoTest control flow instruction with optimizing compiler.
Nicolas Geoffray [Mon, 7 Apr 2014 14:26:35 +0000 (15:26 +0100)]
Test control flow instruction with optimizing compiler.

Add support for basic instructions to implement these tests.

Change-Id: I3870bf9301599043b3511522bb49dc6364c9b4c0

10 years agoMerge "Quick compiler: fix CmpLong pair handling"
buzbee [Tue, 8 Apr 2014 04:47:11 +0000 (04:47 +0000)]
Merge "Quick compiler: fix CmpLong pair handling"

10 years agoMerge "Implement rosalloc page trimming without suspending threads."
Hiroshi Yamauchi [Mon, 7 Apr 2014 23:13:17 +0000 (23:13 +0000)]
Merge "Implement rosalloc page trimming without suspending threads."

10 years agoImplement rosalloc page trimming without suspending threads.
Hiroshi Yamauchi [Mon, 7 Apr 2014 20:52:31 +0000 (13:52 -0700)]
Implement rosalloc page trimming without suspending threads.

Also, making it more efficient by not going through the chunks smaller
than the page size by not using InspectAll().

Change-Id: I79ceb0374cb8aba5f6b8dde1afbace9af98b6cff

10 years agoMerge "Use LIRSlowPath for throwing div by zero exception."
Mingyao Yang [Mon, 7 Apr 2014 22:47:42 +0000 (22:47 +0000)]
Merge "Use LIRSlowPath for throwing div by zero exception."

10 years agoMerge "Add monitor deflation."
Mathieu Chartier [Mon, 7 Apr 2014 21:30:39 +0000 (21:30 +0000)]
Merge "Add monitor deflation."

10 years agoUse LIRSlowPath for throwing div by zero exception.
Mingyao Yang [Mon, 7 Apr 2014 19:42:16 +0000 (12:42 -0700)]
Use LIRSlowPath for throwing div by zero exception.

Get rid of launchpads for throwing div by zero exception and
use LIRSlowPath instead. Add a CallRuntimeHelper that takes no
argument for the runtime function.

Bug: 13170824
Change-Id: I7e0563e736c6f92bd63e3fbdfe3a777ad333e338

10 years agoAdd monitor deflation.
Mathieu Chartier [Mon, 31 Mar 2014 23:36:35 +0000 (16:36 -0700)]
Add monitor deflation.

We now deflate the monitors when we perform a heap trim. This causes
a pause but it shouldn't matter since we should be in a state where
we don't care about pauses. Memory savings are hard to measure.

Fixed integer overflow bug in GetEstimatedLastIterationThroughput.

Bug: 13733906
Change-Id: I4e0e68add02e7f43370b3a5ea763d6fe8a5b212c

10 years agoMerge "AArch64: Fix Managed Register unit tests"
Andreas Gampe [Mon, 7 Apr 2014 20:28:28 +0000 (20:28 +0000)]
Merge "AArch64: Fix Managed Register unit tests"

10 years agoQuick compiler: fix CmpLong pair handling
buzbee [Mon, 7 Apr 2014 19:35:39 +0000 (12:35 -0700)]
Quick compiler: fix CmpLong pair handling

OpCmpLong wasn't properly extracting the low register of a
pair.

Change-Id: I6d6cc3de1f543f4316e561648f371f793502fddb

10 years agoMerge "Revert "Use trampolines for calls to helpers""
Dave Allison [Mon, 7 Apr 2014 19:01:40 +0000 (19:01 +0000)]
Merge "Revert "Use trampolines for calls to helpers""

10 years agoRevert "Use trampolines for calls to helpers"
Dave Allison [Mon, 7 Apr 2014 18:58:07 +0000 (18:58 +0000)]
Revert "Use trampolines for calls to helpers"

This reverts commit 754ddad084ccb610d0cf486f6131bdc69bae5bc6.

Change-Id: Icd979adee1d8d781b40a5e75daf3719444cb72e8

10 years agoMerge "Inlining synthetic accessors."
Vladimir Marko [Mon, 7 Apr 2014 18:03:26 +0000 (18:03 +0000)]
Merge "Inlining synthetic accessors."

10 years agoMerge "Use trampolines for calls to helpers"
Dave Allison [Mon, 7 Apr 2014 17:34:12 +0000 (17:34 +0000)]
Merge "Use trampolines for calls to helpers"