- 17 May, 2017 1 commit
-
-
ulan authored
BUG=chromium:723600 Review-Url: https://codereview.chromium.org/2888093003 Cr-Commit-Position: refs/heads/master@{#45379}
-
- 11 May, 2017 1 commit
-
-
ulan authored
This is a part of synchronization protocol with the concurrent marking. BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2872323002 Cr-Commit-Position: refs/heads/master@{#45262}
-
- 05 May, 2017 6 commits
-
-
ulan authored
Currently the VisitObject function iterates the object and then colors it black. This does not work well with concurrent marking. The function should instead first try to mark the object black and iterate its body only if the color transition succeeds. BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2863933002 Cr-Commit-Position: refs/heads/master@{#45139}
-
ulan authored
concurrent marking is enabled. This patch adds kAtomicity flag to IncrementalMarking that is set depending on the concurrent marking compile time flag. BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2858343003 Cr-Commit-Position: refs/heads/master@{#45138}
-
ulan authored
Now non-atomic color transition operations return a boolean indicating whether the transition succeeded or not. This allows to replace color check and transition operations with a single transition operation. For example: if (IsWhite(object)) { WhiteToBlack(object); Foo(); } becomes if (WhiteToBlack(object)) { Foo(); } BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2863703004 Cr-Commit-Position: refs/heads/master@{#45136}
-
ulan authored
Revert of [heap] Reland "Make non-atomic markbit operations consistent with atomic ones." (patchset #2 id:20001 of https://codereview.chromium.org/2860323003/ ) Reason for revert: box2d failures on buildbot Original issue's description: > [heap] Reland "Make non-atomic markbit operations consistent with atomic ones." > > Now non-atomic color transition operations return a boolean indicating > whether the transition succeeded or not. > > This allows to replace color check and transition operations with a > single transition operation. For example: > > if (IsWhite(object)) { > WhiteToBlack(object); > Foo(); > } > > becomes > > if (WhiteToBlack(object)) { > Foo(); > } > > BUG=chromium:694255 > > CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng > > Review-Url: https://codereview.chromium.org/2860323003 > Cr-Commit-Position: refs/heads/master@{#45123} > Committed: https://chromium.googlesource.com/v8/v8/+/c0a65cd295301f334e2bbfcce46a937cd708beec TBR=mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2863953002 Cr-Commit-Position: refs/heads/master@{#45127}
-
ulan authored
Now non-atomic color transition operations return a boolean indicating whether the transition succeeded or not. This allows to replace color check and transition operations with a single transition operation. For example: if (IsWhite(object)) { WhiteToBlack(object); Foo(); } becomes if (WhiteToBlack(object)) { Foo(); } BUG=chromium:694255 CQ_INCLUDE_TRYBOTS=master.tryserver.chromium.linux:linux_chromium_rel_ng Review-Url: https://codereview.chromium.org/2860323003 Cr-Commit-Position: refs/heads/master@{#45123}
-
https://codereview.chromium.org/2857713002Michael Achenbach authored
Revert "[heap] Make non-atomic markbit operations consistent with atomic ones." This reverts commit dd37366f Revert "[heap] Use atomic marking operations in incremental marking if" This reverts commit 1f2c3596 Revert "[heap] Prepare IncrementalMarking::VisitObject for concurrent marking." This reverts commit 00d1e2cf Revert "[heap] Use shared markbits in the concurrent marker." This reverts commit b0db0541 https://codereview.chromium.org/2857713002 blocks the current roll: https://codereview.chromium.org/2857423002/ Doesn't revert cleanly. NOTRY=true TBR=ulan@chromium.org Bug: chromium:694255 Change-Id: Iada35af5c2529cd9e604802700604b16cc30aa2d Reviewed-on: https://chromium-review.googlesource.com/497387Reviewed-by:
Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#45118}
-
- 04 May, 2017 4 commits
-
-
ulan authored
Currently the VisitObject function iterates the object and then colors it black. This does not work well with concurrent marking. The function should instead first try to mark the object black and iterate its body only if the color transition succeeds. BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2853323003 Cr-Commit-Position: refs/heads/master@{#45095}
-
ulan authored
concurrent marking is enabled. This patch adds kAtomicity flag to IncrementalMarking that is set depending on the concurrent marking compile time flag. BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2857743002 Cr-Commit-Position: refs/heads/master@{#45091}
-
ulan authored
Now non-atomic color transition operations return a boolean indicating whether the transition succeeded or not. This allows to replace color check and transition operations with a single transition operation. For example: if (IsWhite(object)) { WhiteToBlack(object); Foo(); } becomes if (WhiteToBlack(object)) { Foo(); } BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2857713002 Cr-Commit-Position: refs/heads/master@{#45085}
-
mlippautz authored
BUG=v8:6343 Review-Url: https://codereview.chromium.org/2860043002 Cr-Commit-Position: refs/heads/master@{#45079}
-
- 03 May, 2017 1 commit
-
-
mlippautz authored
There is no point in doing black allocation here as we then have to iterate the objects for various reasons. The marker does the same work but can be moved outside of the atomic pause. BUG=chromium:581412 Review-Url: https://codereview.chromium.org/2862563002 Cr-Commit-Position: refs/heads/master@{#45063}
-
- 28 Apr, 2017 1 commit
-
-
mlippautz authored
BUG=v8:6325, v8:6330 Review-Url: https://codereview.chromium.org/2847953002 Cr-Commit-Position: refs/heads/master@{#44983}
-
- 21 Apr, 2017 1 commit
-
-
mlippautz authored
Adds general support for concurrent modifications to live byte counters. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2836583002 Cr-Commit-Position: refs/heads/master@{#44767}
-
- 18 Apr, 2017 1 commit
-
-
brucedawson authored
IncrementalMarking has nine bytes of padding in 32-bit and 64-bit builds. Fixing 32-bit builds just requires moving the one-byte incremental_marking_job_ member. Fixing 64-bit requires moving the four-byte state_ member. This change reduces the padding to one byte. On 64-bit this reduces its size from 152 to 144. This also fits heap granularity better. On 32-bit it goes from 96 to 88 bytes. The initial padding was found with llvm-pdbdump.exe. The fix was verified by compiling v8/src/assembler.cc with the undocumented /d1reportSingleClassLayout option, like this: /d1reportSingleClassLayoutIncrementalMarking The savings should apply on all platforms, or at worst should make no difference except for improving alignment. Thanks to zturner@ for some llvm-pdbdump improvements. BUG=chromium:710933 Review-Url: https://codereview.chromium.org/2808473003 Cr-Commit-Position: refs/heads/master@{#44698}
-
- 24 Mar, 2017 1 commit
-
-
mlippautz authored
Require the use of MarkingState when going through ObjectMarking and friends. BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2770253002 Cr-Commit-Position: refs/heads/master@{#44123}
-
- 10 Mar, 2017 1 commit
-
-
Michael Lippautz authored
BUG= Change-Id: Icfc5412316279bed6cc95107303fbee6be66ebb4 Reviewed-on: https://chromium-review.googlesource.com/452618Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43715}
-
- 02 Mar, 2017 2 commits
-
-
hpayer authored
BUG=chromium:694255 Review-Url: https://codereview.chromium.org/2723853006 Cr-Commit-Position: refs/heads/master@{#43553}
-
Michael Lippautz authored
Enbedders should switch to EmbedderHeapTracer API. BUG=v8:5828 Change-Id: I82f2bc583d246617865a17f5904e02cd35f92fec Reviewed-on: https://chromium-review.googlesource.com/448539Reviewed-by:
Hannes Payer <hpayer@chromium.org> Reviewed-by:
Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#43551}
-
- 10 Feb, 2017 1 commit
-
-
mlippautz authored
BUG=v8:5945 Review-Url: https://codereview.chromium.org/2689683002 Cr-Commit-Position: refs/heads/master@{#43102}
-
- 20 Jan, 2017 3 commits
-
-
mlippautz authored
BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2637403011 Cr-Commit-Position: refs/heads/master@{#42555}
-
bmeurer authored
Revert of [heap] Provide ObjectMarking with marking transitions (patchset #5 id:80001 of https://codereview.chromium.org/2644523002/ ) Reason for revert: Breaks the tree: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20gc%20stress/builds/8349/steps/Mjsunit/logs/compiled-module-seria.. Original issue's description: > [heap] Provide ObjectMarking with marking transitions > > BUG=chromium:651354 > > Review-Url: https://codereview.chromium.org/2644523002 > Cr-Commit-Position: refs/heads/master@{#42531} > Committed: https://chromium.googlesource.com/v8/v8/+/cbb8929e97ee475dab4f704a71637e76342e903a TBR=hpayer@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:651354 Review-Url: https://codereview.chromium.org/2647873002 Cr-Commit-Position: refs/heads/master@{#42533}
-
mlippautz authored
BUG=chromium:651354 Review-Url: https://codereview.chromium.org/2644523002 Cr-Commit-Position: refs/heads/master@{#42531}
-
- 17 Jan, 2017 1 commit
-
-
mlippautz authored
BUG=651354 Review-Url: https://codereview.chromium.org/2638803002 Cr-Commit-Position: refs/heads/master@{#42397}
-
- 23 Dec, 2016 1 commit
-
-
mlippautz authored
1) Alternate between processing v8 and wrappers 2) Once v8 is empty, try 3 rounds of finding the fixpoint between v8 and wrappers 3) After that, finalize once v8 marking deque is empty again Reland fixed: Toggle needs to be IncrementalMarking global as we need to properly alternate tracing v8 and wrappers. BUG=chromium:468240, chromium:668164 Review-Url: https://codereview.chromium.org/2599283002 Cr-Commit-Position: refs/heads/master@{#41940}
-
- 06 Dec, 2016 1 commit
-
-
ulan authored
come from the runtime. This patch fixes an issue of heap growing to max capacity when incremental marking is finished but cannot finalize due to GC stack guard not triggering. It can happen if all allocations come from the runtime, for example, from JSON parser or compiler. Now before expanding the heap we check if we are above the allocation limit and the incremental marking needs to be finalized. If so we do not expand the heap and force GC, which will finalize the incremental marking. The check is performed for paged spaces and large-object space. BUG=chromium:670675 Review-Url: https://codereview.chromium.org/2552613004 Cr-Commit-Position: refs/heads/master@{#41524}
-
- 03 Nov, 2016 1 commit
-
-
ulan authored
Revert of [heap] Invoke incremental marking step before allocation. (patchset #1 id:1 of https://codereview.chromium.org/2464393002/ ) Reason for revert: Performance regression on Octane and V8 runtime stats. Original issue's description: > [heap] Invoke incremental marking step before allocation. > > This ensures that the newly allocated object immediatly precedes the > linear allocation area, which is needed for allocation folding. > > For more info see: > https://bugs.chromium.org/p/chromium/issues/detail?id=659165#c13 > > BUG=chromium:659165 TBR=hpayer@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:659165 Review-Url: https://codereview.chromium.org/2472043002 Cr-Commit-Position: refs/heads/master@{#40713}
-
- 02 Nov, 2016 1 commit
-
-
ulan authored
This ensures that the newly allocated object immediatly precedes the linear allocation area, which is needed for allocation folding. For more info see: https://bugs.chromium.org/p/chromium/issues/detail?id=659165#c13 BUG=chromium:659165 Review-Url: https://codereview.chromium.org/2464393002 Cr-Commit-Position: refs/heads/master@{#40704}
-
- 28 Sep, 2016 4 commits
-
-
ulan authored
Reland "[heap] New heuristics for starting of incremental marking. (patchset #9 id:160001 of https://codereview.chromium.org/2364923002/ )" This reverts commit a5440d11. BUG=chromium:616434 TBR=hpayer@chromium.org LOG=NO Review-Url: https://codereview.chromium.org/2379663002 Cr-Commit-Position: refs/heads/master@{#39838}
-
machenbach authored
Revert of [heap] New heuristics for starting of incremental marking. (patchset #9 id:160001 of https://codereview.chromium.org/2364923002/ ) Reason for revert: OOMs in nosnap debug: https://build.chromium.org/p/client.v8/builders/V8%20Linux%20-%20nosnap%20-%20debug/builds/9572 Original issue's description: > [heap] New heuristics for starting of incremental marking. > > The motivation for this patch is to move more marking work to tasks. > This is done by postponing the start of incremental marking until > a marking task is running. > > This patch introduces a soft and a hard limits for incremental marking. > When the soft limit is reached, the marking task is scheduled. > If the hard limit is reached before the task is running, then > incremental marking is started without waiting for the task. > > BUG=chromium:616434 > LOG=NO > > Committed: https://crrev.com/55683ddd2a32e0dfb8df66271fbf53e3618cce9d > Cr-Commit-Position: refs/heads/master@{#39831} TBR=hpayer@chromium.org,ulan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:616434 Review-Url: https://codereview.chromium.org/2375983002 Cr-Commit-Position: refs/heads/master@{#39833}
-
ulan authored
The motivation for this patch is to move more marking work to tasks. This is done by postponing the start of incremental marking until a marking task is running. This patch introduces a soft and a hard limits for incremental marking. When the soft limit is reached, the marking task is scheduled. If the hard limit is reached before the task is running, then incremental marking is started without waiting for the task. BUG=chromium:616434 LOG=NO Review-Url: https://codereview.chromium.org/2364923002 Cr-Commit-Position: refs/heads/master@{#39831}
-
ulan authored
This patch simplifies code for speeding up marking and removes write barrier counter. The step size is now computed based in two parts: - bytes to mark in order to keep up with allocation, - bytes to mark in order to make progress. BUG=chromium:616434, chromium:646139, chromium:644819 LOG=NO Review-Url: https://codereview.chromium.org/2359903002 Cr-Commit-Position: refs/heads/master@{#39827}
-
- 20 Sep, 2016 2 commits
-
-
jgruber authored
This commit ensures that the d8 shared library build uses the same logic as the standard static build by exporting relevant functions and classes. BUG=chromium:646337 Committed: https://crrev.com/2c10ca8086a4d595ecf9aa843d2031b068470d65 Review-Url: https://codereview.chromium.org/2342563002 Cr-Original-Commit-Position: refs/heads/master@{#39503} Cr-Commit-Position: refs/heads/master@{#39547}
-
machenbach authored
Revert of [d8] Fix the shared-library build (patchset #12 id:20002 of https://codereview.chromium.org/2342563002/ ) Reason for revert: Unblocking roll Original issue's description: > [d8] Fix the shared-library build > > This commit ensures that the d8 shared library build uses the same logic as > the standard static build by exporting relevant functions and classes. > > BUG=chromium:646337 > > Committed: https://crrev.com/2c10ca8086a4d595ecf9aa843d2031b068470d65 > Cr-Commit-Position: refs/heads/master@{#39503} TBR=jochen@chromium.org,vogelheim@chromium.org,bmeurer@chromium.org,titzer@chromium.org,jgruber@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:646337 Review-Url: https://codereview.chromium.org/2356703003 Cr-Commit-Position: refs/heads/master@{#39526}
-
- 19 Sep, 2016 1 commit
-
-
jgruber authored
This commit ensures that the d8 shared library build uses the same logic as the standard static build by exporting relevant functions and classes. BUG=chromium:646337 Review-Url: https://codereview.chromium.org/2342563002 Cr-Commit-Position: refs/heads/master@{#39503}
-
- 13 Sep, 2016 1 commit
-
-
hpayer authored
BUG=chromium:630386 Review-Url: https://codereview.chromium.org/2337943002 Cr-Commit-Position: refs/heads/master@{#39380}
-
- 12 Sep, 2016 1 commit
-
-
ulan authored
This patch changes incremental marking work scheduling from combination of idle/delayed tasks to ordinary short-running tasks and moves more marking work from V8.Execute to tasks by accounting how much bytes were marked in tasks. BUG=chromium:616434 LOG=NO Review-Url: https://codereview.chromium.org/2321553002 Cr-Commit-Position: refs/heads/master@{#39348}
-
- 07 Sep, 2016 1 commit
-
-
ulan authored
Now callers of Heap::CollectGarbage* functions need to specify the reason as an enum value instead of a string. Subsequent CL will add stats counter for GC reason. BUG= Review-Url: https://codereview.chromium.org/2310143002 Cr-Commit-Position: refs/heads/master@{#39239}
-
- 06 Sep, 2016 1 commit
-
-
ulan authored
This patch - extracts the logic of keeping track of allocated bytes from the actual incremental marking step. - replaces OldSpaceStep with a check for incremental marking start. - removes the force_marking parameter of AdvanceIncrementalMarking. BUG=chromium:616434 LOG=NO Review-Url: https://codereview.chromium.org/2304123003 Cr-Commit-Position: refs/heads/master@{#39213}
-