- 27 Jan, 2016 2 commits
-
-
mlippautz authored
This reverts commit 85ba94f2. All parallelism can be turned off using --predictable, or --noparallel-compaction. This patch completely parallelizes - semispace copy: from space -> to space (within newspace) - newspace evacuation: newspace -> oldspace - oldspace compaction: oldspace -> oldspace Previously newspace has been handled sequentially (semispace copy, newspace evacuation) before compacting oldspace in parallel. However, on a high level there are no dependencies between those two actions, hence we parallelize them altogether. We base the number of evacuation tasks on the overall set of to-be-processed pages (newspace + oldspace compaction pages). Some low-level details: - The hard cap on number of tasks has been lifted - We cache store buffer entries locally before merging them back into the global StoreBuffer in a finalization phase. - We cache AllocationSite operations locally before merging them back into the global pretenuring storage in a finalization phase. - AllocationSite might be compacted while they would be needed for newspace evacuation. To mitigate any problems we defer checking allocation sites for newspace till merging locally buffered data. CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel BUG=chromium:524425 LOG=N R=hpayer@chromium.org, ulan@chromium.org Review URL: https://codereview.chromium.org/1640563004 Cr-Commit-Position: refs/heads/master@{#33552}
-
machenbach authored
Revert of [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ (patchset #16 id:620001 of https://codereview.chromium.org/1577853007/ ) Reason for revert: [Sheriff] Leads to crashes on all webrtc chromium testers, e.g.: https://build.chromium.org/p/chromium.webrtc/builders/Mac%20Tester/builds/49664 Original issue's description: > [heap] Parallel newspace evacuation, semispace copy, and compaction \o/ > > All parallelism can be turned off using --predictable, or --noparallel-compaction. > > This patch completely parallelizes > - semispace copy: from space -> to space (within newspace) > - newspace evacuation: newspace -> oldspace > - oldspace compaction: oldspace -> oldspace > > Previously newspace has been handled sequentially (semispace copy, newspace > evacuation) before compacting oldspace in parallel. However, on a high level > there are no dependencies between those two actions, hence we parallelize them > altogether. We base the number of evacuation tasks on the overall set of > to-be-processed pages (newspace + oldspace compaction pages). > > Some low-level details: > - The hard cap on number of tasks has been lifted > - We cache store buffer entries locally before merging them back into the global > StoreBuffer in a finalization phase. > - We cache AllocationSite operations locally before merging them back into the > global pretenuring storage in a finalization phase. > - AllocationSite might be compacted while they would be needed for newspace > evacuation. To mitigate any problems we defer checking allocation sites for > newspace till merging locally buffered data. > > CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel > BUG=chromium:524425 > LOG=N > R=hpayer@chromium.org, ulan@chromium.org > > Committed: https://crrev.com/8f0fd8c0370ae8c5aab56491b879d7e30c329062 > Cr-Commit-Position: refs/heads/master@{#33523} TBR=hpayer@chromium.org,ulan@chromium.org,mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1643473002 Cr-Commit-Position: refs/heads/master@{#33539}
-
- 26 Jan, 2016 1 commit
-
-
mlippautz authored
All parallelism can be turned off using --predictable, or --noparallel-compaction. This patch completely parallelizes - semispace copy: from space -> to space (within newspace) - newspace evacuation: newspace -> oldspace - oldspace compaction: oldspace -> oldspace Previously newspace has been handled sequentially (semispace copy, newspace evacuation) before compacting oldspace in parallel. However, on a high level there are no dependencies between those two actions, hence we parallelize them altogether. We base the number of evacuation tasks on the overall set of to-be-processed pages (newspace + oldspace compaction pages). Some low-level details: - The hard cap on number of tasks has been lifted - We cache store buffer entries locally before merging them back into the global StoreBuffer in a finalization phase. - We cache AllocationSite operations locally before merging them back into the global pretenuring storage in a finalization phase. - AllocationSite might be compacted while they would be needed for newspace evacuation. To mitigate any problems we defer checking allocation sites for newspace till merging locally buffered data. CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg,v8_linux_gc_stress_dbg,v8_mac_gc_stress_dbg,v8_linux64_asan_rel,v8_linux64_tsan_rel,v8_mac64_asan_rel BUG=chromium:524425 LOG=N R=hpayer@chromium.org, ulan@chromium.org Review URL: https://codereview.chromium.org/1577853007 Cr-Commit-Position: refs/heads/master@{#33523}
-
- 12 Jan, 2016 1 commit
-
-
mlippautz authored
We use a scratchpad to remember visited allocation sites for post processing (making tenure decisions). The previous implementation used a rooted FixedArray with constant length (256) to remember all sites. Updating the scratchpad is a bottleneck in any parallel/concurrent implementation of newspace evacuation. The new implementation uses a HashMap with allocation sites as keys and temporary counts as values. During evacuation we collect a local hashmap of visited allocation sites. Upon merging the local hashmap back into a global one we update potential forward pointers of compacted allocation sites. The scavenger can directly enter its entries into the global hashmap. Note that the actual memento found count is still kept on the AllocationSite as it needs to survive scavenges and full GCs. BUG=chromium:524425 LOG=N R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1535723002 Cr-Commit-Position: refs/heads/master@{#33233}
-
- 12 Nov, 2015 1 commit
-
-
ishell authored
This CL fixes several sources of non-predictability by making Platform::MonotonicallyIncreasingTime() the only bottleneck for all time-querying functions and providing PredictablePlatform implementation. Review URL: https://codereview.chromium.org/1415383004 Cr-Commit-Position: refs/heads/master@{#31959}
-
- 06 Oct, 2015 1 commit
-
-
caitpotter88 authored
Symbols marked as "well-known" now return an undefined value when loaded with a failed access check, instead of throwing. Currently, only @@isConcatSpreadable is marked as well-known, until the correct behaviour is properly specified. BUG=v8:4289, 507553 LOG=N R=adamk@chromium.org, jochen@chromium.org, verwaest@chromium.org Review URL: https://codereview.chromium.org/1230793002 Cr-Commit-Position: refs/heads/master@{#31131}
-
- 01 Oct, 2015 1 commit
-
-
ishell authored
This CL also allows to use arbitrary number of feedback vector elements for particular slot kind. Review URL: https://codereview.chromium.org/1370303004 Cr-Commit-Position: refs/heads/master@{#31050}
-
- 30 Sep, 2015 2 commits
-
-
mstarzinger authored
This enables linter checking for "readability/namespace" violations during presubmit and instead marks the few known exceptions that we allow explicitly. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1371083003 Cr-Commit-Position: refs/heads/master@{#31019}
-
mstarzinger authored
This moves some methods of IncrementalMarking from the inlined header into the compilation unit. The methods in question are either not hot or are being called through a non-inline function already. R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1380523002 Cr-Commit-Position: refs/heads/master@{#31017}
-
- 29 Sep, 2015 2 commits
-
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1374163002 Cr-Commit-Position: refs/heads/master@{#30998}
-
bmeurer authored
Revert of [heap] Remove retry space from AllocateRaw. (patchset #3 id:40001 of https://codereview.chromium.org/1370123002/ ) Reason for revert: Breaks arm64 nosnap simulator (bogus cctest?): https://chromegw.corp.google.com/i/client.v8/builders/V8%20Linux%20-%20arm64%20-%20sim%20-%20nosnap%20-%20debug%20-%201/builds/2934/steps/Bisect%202786ceec.Retry/logs/IncrementalWriteBarri.. Original issue's description: > [heap] Remove retry space from AllocateRaw. > > BUG= > > Committed: https://crrev.com/2786ceec1eb491494d24d29a59eefbe3b6704be2 > Cr-Commit-Position: refs/heads/master@{#30984} TBR=mstarzinger@chromium.org,hpayer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1379493003 Cr-Commit-Position: refs/heads/master@{#30991}
-
- 28 Sep, 2015 6 commits
-
-
alph authored
Drive-by: remove unnecessary includes. Review URL: https://codereview.chromium.org/1356223004 Cr-Commit-Position: refs/heads/master@{#30987}
-
mstarzinger authored
R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1372063002 Cr-Commit-Position: refs/heads/master@{#30985}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1370123002 Cr-Commit-Position: refs/heads/master@{#30984}
-
jkummerow authored
Replacing it with SMI_ACCESSORS. This change makes accesses to Smi fields in objects more regular (the accessors now always consume/return an int rather than a Smi*), which avoids a bunch of manual Smi::FromInt() and Smi::value() conversions, and is a step on the way towards being able to generate objects-inl.h. Review URL: https://codereview.chromium.org/1371893002 Cr-Commit-Position: refs/heads/master@{#30975}
-
mstarzinger authored
R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1371943002 Cr-Commit-Position: refs/heads/master@{#30973}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1371033002 Cr-Commit-Position: refs/heads/master@{#30969}
-
- 25 Sep, 2015 4 commits
-
-
machenbach authored
Revert of [heap] Move large object space selection into AllocateRaw. (patchset #2 id:20001 of https://codereview.chromium.org/1373523002/ ) Reason for revert: Breaks mac asan: http://build.chromium.org/p/client.v8/builders/V8%20Mac64%20ASAN/builds/2895 According to auto bisect Original issue's description: > [heap] Move large object space selection into AllocateRaw. > > BUG= > > Committed: https://crrev.com/e4f7ebb000432cc2011ecaaa71a69e2e60f416f0 > Cr-Commit-Position: refs/heads/master@{#30938} TBR=mlippautz@chromium.org,hpayer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1368833004 Cr-Commit-Position: refs/heads/master@{#30948}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1373523002 Cr-Commit-Position: refs/heads/master@{#30938}
-
machenbach authored
Revert of [heap] Move large object space selection into AllocateRaw. (patchset #1 id:1 of https://codereview.chromium.org/1360903004/ ) Reason for revert: [Sheriff] Breaks: http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%202/builds/2080 And maybe (not sure): http://build.chromium.org/p/client.v8.fyi/builders/V8-Blink%20Linux%2064%20%28dbg%29/builds/1529 Original issue's description: > [heap] Move large object space selection into AllocateRaw. > > BUG= > > Committed: https://crrev.com/1403815bdbcbd3336b2d85291704640fada30ffe > Cr-Commit-Position: refs/heads/master@{#30930} TBR=mlippautz@chromium.org,hpayer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1368103002 Cr-Commit-Position: refs/heads/master@{#30931}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1360903004 Cr-Commit-Position: refs/heads/master@{#30930}
-
- 14 Sep, 2015 2 commits
-
-
mstarzinger authored
This prevents the internal objects-visiting.h to be usable outisde of the "heap" directory. The static object visitation is only usefull within the GC and is now properly encapsulated. R=hpayer@chromium.org,mlippautz@chromium.org Review URL: https://codereview.chromium.org/1328003002 Cr-Commit-Position: refs/heads/master@{#30716}
-
mstarzinger authored
This moves scavenging functionality into a separate component so that neither the scavenger nor objects-visiting need to be exposed outside the heap. R=hpayer@chromium.org,mlippautz@chromium.org Review URL: https://codereview.chromium.org/1323993004 Cr-Commit-Position: refs/heads/master@{#30712}
-
- 09 Sep, 2015 1 commit
-
-
mbrandy authored
Fix additional cases where the AIX compiler reports that a variable may be used uninitialized. R=danno@chromium.org, michael_dawson@ca.ibm.com BUG= Review URL: https://codereview.chromium.org/1323313003 Cr-Commit-Position: refs/heads/master@{#30658}
-
- 08 Sep, 2015 2 commits
-
-
mstarzinger authored
R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1314543014 Cr-Commit-Position: refs/heads/master@{#30642}
-
mstarzinger authored
This removes the DisallowAllocationFailure assertion scope which mostly coincided with the AlwaysAllocateScope anyways. Access to the bitfield in the Isolate was not synchronized and hence the AlwaysAllocateScope was not thread-safe in debug mode, now it is. R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1319153006 Cr-Commit-Position: refs/heads/master@{#30637}
-
- 03 Sep, 2015 1 commit
-
-
mlippautz authored
BUG=chromium:524425 LOG=N R=mstarzinger@chromium.org Review URL: https://codereview.chromium.org/1325173003 Cr-Commit-Position: refs/heads/master@{#30563}
-
- 01 Sep, 2015 1 commit
-
-
mstarzinger authored
This CL us a pure refactoring that makes an empty compilation unit including just "isolate.h" or "contexts.h" but not "objects-inl.h" compile without warnings or errors. This is needed to further reduce the header dependency tangle. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1322883002 Cr-Commit-Position: refs/heads/master@{#30500}
-
- 31 Aug, 2015 2 commits
-
-
hablich authored
Revert of [heap] More flag cleanup. (patchset #8 id:140001 of https://codereview.chromium.org/1314863003/ ) Reason for revert: Breaks http://build.chromium.org/p/client.v8/builders/V8%20Arm%20-%20debug%20-%202/builds/2372 Original issue's description: > [heap] GC flag cleanup/restructuring. > > * GC's flags are now proper flags and not int. > * Callback flags are not threaded through but only set once like gc flags > * Callers of methods that trigger GCs need to pass a reason when not using > the default parameters. > > Furthermore, each GC invocation can be passed the GC and GCCallback flags. We > usually override the currently set flags upon finishing a GC cylce, but are able > to restore the previously set if desired. This is useful for explicitely > triggered scavenges or external requests that interrupt the current behaviour. > > BUG= > > Committed: https://crrev.com/f4f3b431b9ce0778d926acf03c0d36dae5c0cba4 > Cr-Commit-Position: refs/heads/master@{#30457} TBR=hpayer@chromium.org,yangguo@chromium.org,mlippautz@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1303393004 Cr-Commit-Position: refs/heads/master@{#30463}
-
mlippautz authored
* GC's flags are now proper flags and not int. * Callback flags are not threaded through but only set once like gc flags * Callers of methods that trigger GCs need to pass a reason when not using the default parameters. Furthermore, each GC invocation can be passed the GC and GCCallback flags. We usually override the currently set flags upon finishing a GC cylce, but are able to restore the previously set if desired. This is useful for explicitely triggered scavenges or external requests that interrupt the current behaviour. BUG= Review URL: https://codereview.chromium.org/1314863003 Cr-Commit-Position: refs/heads/master@{#30457}
-
- 28 Aug, 2015 1 commit
-
-
yangguo authored
R=cbruni@chromium.org,mlippautz@chromium.org Review URL: https://codereview.chromium.org/1318043002 Cr-Commit-Position: refs/heads/master@{#30438}
-
- 26 Aug, 2015 1 commit
-
-
mstarzinger authored
R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1312553003 Cr-Commit-Position: refs/heads/master@{#30372}
-
- 25 Aug, 2015 1 commit
-
-
mlippautz authored
BUG= Review URL: https://codereview.chromium.org/1313513003 Cr-Commit-Position: refs/heads/master@{#30344}
-
- 18 Aug, 2015 1 commit
-
-
mstarzinger authored
This CL us a pure refactoring that makes an empty compilation unit including just "heap.h" but not "objects-inl.h" compile without warnings or errors. This is needed to further reduce the header dependency tangle. R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1301583003 Cr-Commit-Position: refs/heads/master@{#30227}
-
- 14 Aug, 2015 1 commit
-
-
mstarzinger authored
This CL is a pure refactoring that makes an empty compilation unit including just "foo.h" but not "foo-inl.h" compile without warnings or errors. This is needed to further reduce the header dependency tangle. This realizes above state for "spaces.h" and "mark-compact.h". R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1288413002 Cr-Commit-Position: refs/heads/master@{#30171}
-
- 12 Aug, 2015 1 commit
-
-
mstarzinger authored
This tries to remove includes of "-inl.h" headers from normal ".h" headers, thereby reducing the chance of any cyclic dependencies and decreasing the average size of our compilation units. Note that this change still leaves 7 violations of that rule in the code. However there now is the "tools/check-inline-includes.sh" tool detecting such violations. R=bmeurer@chromium.org Review URL: https://codereview.chromium.org/1283033003 Cr-Commit-Position: refs/heads/master@{#30125}
-
- 10 Aug, 2015 1 commit
-
-
mstarzinger authored
R=mlippautz@chromium.org Review URL: https://codereview.chromium.org/1283833002 Cr-Commit-Position: refs/heads/master@{#30093}
-
- 23 Jun, 2015 1 commit
-
-
hpayer authored
Fix wrong DCHECK in Heap::FindAllocationMemento where bump pointer overflow points to the currently used new space page. BUG=chromium:501693 LOG=n Review URL: https://codereview.chromium.org/1200833003 Cr-Commit-Position: refs/heads/master@{#29218}
-
- 04 Jun, 2015 1 commit
-
-
mbrandy authored
Embed constant pools within their corresponding Code objects. This removes support for out-of-line constant pools in favor of the new approach -- the main advantage being that it eliminates the need to allocate and manage separate constant pool array objects. Currently supported on PPC and ARM. Enabled by default on PPC only. This yields a 6% improvment in Octane on PPC64. R=bmeurer@chromium.org, rmcilroy@chromium.org, michael_dawson@ca.ibm.com BUG=chromium:478811 LOG=Y Review URL: https://codereview.chromium.org/1162993006 Cr-Commit-Position: refs/heads/master@{#28801}
-
- 03 Jun, 2015 1 commit
-
-
bmeurer authored
Revert of Embedded constant pools. (patchset #12 id:220001 of https://codereview.chromium.org/1131783003/) Reason for revert: Breaks Linux nosnap cctest/test-api/FastReturnValuesWithProfiler, see http://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug%20-%202/builds/609/steps/Check/logs/FastReturnValuesWithP.. Original issue's description: > Add support for Embedded Constant Pools for PPC and Arm > > Embed constant pools within their corresponding Code > objects. > > This removes support for out-of-line constant pools in favor > of the new approach -- the main advantage being that it > eliminates the need to allocate and manage separate constant > pool array objects. > > Currently supported on PPC and ARM. Enabled by default on > PPC only. > > This yields a 6% improvment in Octane on PPC64. > > R=danno@chromium.org, svenpanne@chromium.org, bmeurer@chromium.org, rmcilroy@chromium.org, dstence@us.ibm.com, michael_dawson@ca.ibm.com > BUG=chromium:478811 > LOG=Y > > Committed: https://crrev.com/a9404029343d65f146e3443f5280c40a97e736af > Cr-Commit-Position: refs/heads/master@{#28770} TBR=rmcilroy@chromium.org,ishell@chromium.org,rodolph.perfetta@arm.com,mbrandy@us.ibm.com NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:478811 Review URL: https://codereview.chromium.org/1155703006 Cr-Commit-Position: refs/heads/master@{#28772}
-