- 21 Jan, 2016 1 commit
-
-
mlippautz authored
Also restrict how many pages are swept during slow path allocation. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1596343004 Cr-Commit-Position: refs/heads/master@{#33435}
-
- 14 Jan, 2016 1 commit
-
-
mlippautz authored
BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1588823003 Cr-Commit-Position: refs/heads/master@{#33302}
-
- 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}
-
- 11 Jan, 2016 1 commit
-
-
hpayer authored
This CL changes the color for encoding black and grey. Moreover, it introduces a higher level live object iterator. BUG=chromium:561449 LOG=n Review URL: https://codereview.chromium.org/1517993003 Cr-Commit-Position: refs/heads/master@{#33208}
-
- 18 Dec, 2015 1 commit
-
-
mlippautz authored
Reason for revert: Revive left-trimming until new strategies are evaluated and decided on. Partially reverted changes from: https://codereview.chromium.org/1474203003/ BUG=v8:4606 LOG=N Original issue's description: > [heap] delete Heap::LeftTrimFixedAray > > No more uses left for this code (thank goodness.) > > R=hpayer@chromium.org > BUG= > > Committed: https://crrev.com/dc3442b1ec803916eb6c1882ab4c3ec6fd44dd55 > Cr-Commit-Position: refs/heads/master@{#32305} TBR=hpayer@chromium.org,ofrobots@google.com Review URL: https://codereview.chromium.org/1535933002 Cr-Commit-Position: refs/heads/master@{#32965}
-
- 11 Dec, 2015 3 commits
-
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1514693010 Cr-Commit-Position: refs/heads/master@{#32808}
-
mlippautz authored
R=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/1521573002 Cr-Commit-Position: refs/heads/master@{#32793}
-
ulan authored
BUG=chromium:568495 LOG=NO Review URL: https://codereview.chromium.org/1515503006 Cr-Commit-Position: refs/heads/master@{#32791}
-
- 09 Dec, 2015 3 commits
-
-
ulan authored
Compaction of the array with maps happens lazily upon adding new maps. BUG= Review URL: https://codereview.chromium.org/1481953002 Cr-Commit-Position: refs/heads/master@{#32717}
-
mlippautz authored
R=hpayer@chromium.org BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1504773002 Cr-Commit-Position: refs/heads/master@{#32712}
-
mvstanton authored
It's expensive to walk all shared function infos during the gc atomic pause. Instead, use WeakCells to implement this structure without manual clearing. Reland due to a bug when reusing entries in the optimized code map. BUG= Review URL: https://codereview.chromium.org/1508703002 Cr-Commit-Position: refs/heads/master@{#32696}
-
- 08 Dec, 2015 1 commit
-
-
ulan authored
Instead of iterating the whole map space to find dead transitions, look in weak cell list and transition array list. Simple transitions are in the weak cell list. Full transitions are in the transitions array list. BUG=chromium:554488 LOG=NO Review URL: https://codereview.chromium.org/1488593003 Cr-Commit-Position: refs/heads/master@{#32684}
-
- 04 Dec, 2015 2 commits
-
-
mlippautz authored
Create a visitor for evacuating objects for young and old generation. This is the first step of preparing a task to process, both, newspace and oldspace pages in parallel. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1499893002 Cr-Commit-Position: refs/heads/master@{#32617}
-
mlippautz authored
Fix the missed store buffer entries for live objects on aborted pages. Marking the page as scan_on_scavenge takes care of rebuilding the entries. Note that this requires an additional case in the rebuilding logic as we cannot iterate an aborted pages using the object layout, but rather have to use mark bits for this. BUG=chromium:524425, chromium:564498 LOG=N Review URL: https://codereview.chromium.org/1497883003 Cr-Commit-Position: refs/heads/master@{#32610}
-
- 03 Dec, 2015 3 commits
-
-
neis authored
Reason for revert: Probably causes GC stress test failures. TBR=mvstanton@chromium.org BUG= NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1493393002 Cr-Commit-Position: refs/heads/master@{#32574}
-
mvstanton authored
It's expensive to walk all shared function infos during the gc atomic pause. Instead, use WeakCells to implement this structure without manual clearing. BUG= Review URL: https://codereview.chromium.org/1478943003 Cr-Commit-Position: refs/heads/master@{#32567}
-
hpayer authored
Reland of Introduce instance type for transition arrays. (patchset #1 id:1 of https://codereview.chromium.org/1483003002/ ) Reason for revert: Suspect for crashing found, relanding for canary coverage. Original issue's description: > Revert of Introduce instance type for transition arrays. (patchset #6 id:100001 of https://codereview.chromium.org/1480873003/ ) > > Reason for revert: > Broken canary. Trying to find out root cause. > > Original issue's description: > > Introduce instance type for transition arrays. > > > > The motivation is to allow specialized marking visitor for transition arrays and collect all transition array in a list for post-processing in ClearNonLiveReferences. > > > > BUG=chromium:554488 > > LOG=NO > > > > Committed: https://crrev.com/026095a3c7932573e1810b8064ec3008ed696601 > > Cr-Commit-Position: refs/heads/master@{#32396} > > TBR=mlippautz@chromium.org,jkummerow@chromium.org,ulan@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:554488 > > Committed: https://crrev.com/38bf70b9cd2a07b99ac0c0b7eda111849e79c146 > Cr-Commit-Position: refs/heads/master@{#32404} TBR=mlippautz@chromium.org,jkummerow@chromium.org,ulan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:554488 Review URL: https://codereview.chromium.org/1500623002 Cr-Commit-Position: refs/heads/master@{#32561}
-
- 02 Dec, 2015 5 commits
-
-
mlippautz authored
Revert of [heap] Refactor evacuation for young and old gen into visitors. (patchset #1 id:1 of https://codereview.chromium.org/1493523003/ ) Reason for revert: Speculative revert for crashing Canary. Original issue's description: > Reland of [heap] Refactor evacuation for young and old gen into visitors. (patchset #1 id:1 of https://codereview.chromium.org/1483393002/ ) > > Reason for revert: > Reland after fixing the potential root cause of the canary crasher. > > Original issue's description: > > Revert of [heap] Refactor evacuation for young and old gen into visitors. (patchset #5 id:80001 of https://codereview.chromium.org/1470253002/ ) > > > > Reason for revert: > > Still investigating bad canary. > > > > Original issue's description: > > > [heap] Refactor evacuation for young and old gen into visitors. > > > > > > Create a visitor for evacuating objects for young and old generation. This is > > > the first step of preparing a task to process, both, newspace and oldspace > > > pages in parallel. > > > > > > BUG=chromium:524425 > > > LOG=N > > > > > > Committed: https://crrev.com/138d9bae5d7014e0d205634a49b5eac3697744c8 > > > Cr-Commit-Position: refs/heads/master@{#32349} > > > > TBR=mlippautz@chromium.org > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=chromium:524425 > > > > Committed: https://crrev.com/aa24a3135ec308e1f84bce334844caf0cae2437a > > Cr-Commit-Position: refs/heads/master@{#32462} > > TBR=mlippautz@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:524425 > > Committed: https://crrev.com/120b640dfce5f02cecc5af72ca0b2b3b93ce8652 > Cr-Commit-Position: refs/heads/master@{#32500} TBR=hpayer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1495583002 Cr-Commit-Position: refs/heads/master@{#32522}
-
mlippautz authored
Revert of [heap] Unify evacuating an object for new and old generation. (patchset #1 id:1 of https://codereview.chromium.org/1494533002/ ) Reason for revert: Speculative revert for crashing Canary. Original issue's description: > Reland of [heap] Unify evacuating an object for new and old generation. (patchset #1 id:1 of https://codereview.chromium.org/1483963004/ ) > > Reason for revert: > Reland after fixing the potential root cause of the canary crasher. > > Original issue's description: > > Revert of [heap] Unify evacuating an object for new and old generation. (patchset #2 id:20001 of https://codereview.chromium.org/1481873002/ ) > > > > Reason for revert: > > Still investigating bad canary. > > > > Original issue's description: > > > [heap] Unify evacuating an object for new and old generation. > > > > > > BUG=chromium:524425 > > > LOG=N > > > > > > Committed: https://crrev.com/afb8bcce8ba889280ed747eb218d287ddd233b4a > > > Cr-Commit-Position: refs/heads/master@{#32365} > > > > TBR=mlippautz@chromium.org > > NOPRESUBMIT=true > > NOTREECHECKS=true > > NOTRY=true > > BUG=chromium:524425 > > > > Committed: https://crrev.com/9c60ddc60e96da0c59e646660789c26550ad52a2 > > Cr-Commit-Position: refs/heads/master@{#32460} > > TBR=mlippautz@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:524425 > > Committed: https://crrev.com/7ea8ac98f6eb5ffa9d4976aa22fec9befb814e0c > Cr-Commit-Position: refs/heads/master@{#32501} TBR=hpayer@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1491013003 Cr-Commit-Position: refs/heads/master@{#32521}
-
hpayer authored
Reland of [heap] Cleanup mark bit usage. (patchset #1 id:1 of https://codereview.chromium.org/1490753003/ ) Reason for revert: Reland after fixing the potential root cause of the canary crasher. Original issue's description: > Revert of [heap] Cleanup mark bit usage. (patchset #1 id:1 of https://codereview.chromium.org/1474203003/ ) > > Reason for revert: > Still investigating bad canary. > > Original issue's description: > > [heap] Cleanup mark bit usage. > > > > BUG= > > > > Committed: https://crrev.com/5874ac783ff9bc4bb4b2fda81f5077f06619f96c > > Cr-Commit-Position: refs/heads/master@{#32362} > > TBR=mlippautz@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG= > > Committed: https://crrev.com/d3faef8658598e68331208b5a1846ac1c250cb49 > Cr-Commit-Position: refs/heads/master@{#32461} TBR=mlippautz@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1488393003 Cr-Commit-Position: refs/heads/master@{#32502}
-
hpayer authored
Reland of [heap] Unify evacuating an object for new and old generation. (patchset #1 id:1 of https://codereview.chromium.org/1483963004/ ) Reason for revert: Reland after fixing the potential root cause of the canary crasher. Original issue's description: > Revert of [heap] Unify evacuating an object for new and old generation. (patchset #2 id:20001 of https://codereview.chromium.org/1481873002/ ) > > Reason for revert: > Still investigating bad canary. > > Original issue's description: > > [heap] Unify evacuating an object for new and old generation. > > > > BUG=chromium:524425 > > LOG=N > > > > Committed: https://crrev.com/afb8bcce8ba889280ed747eb218d287ddd233b4a > > Cr-Commit-Position: refs/heads/master@{#32365} > > TBR=mlippautz@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:524425 > > Committed: https://crrev.com/9c60ddc60e96da0c59e646660789c26550ad52a2 > Cr-Commit-Position: refs/heads/master@{#32460} TBR=mlippautz@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1494533002 Cr-Commit-Position: refs/heads/master@{#32501}
-
hpayer authored
Reland of [heap] Refactor evacuation for young and old gen into visitors. (patchset #1 id:1 of https://codereview.chromium.org/1483393002/ ) Reason for revert: Reland after fixing the potential root cause of the canary crasher. Original issue's description: > Revert of [heap] Refactor evacuation for young and old gen into visitors. (patchset #5 id:80001 of https://codereview.chromium.org/1470253002/ ) > > Reason for revert: > Still investigating bad canary. > > Original issue's description: > > [heap] Refactor evacuation for young and old gen into visitors. > > > > Create a visitor for evacuating objects for young and old generation. This is > > the first step of preparing a task to process, both, newspace and oldspace > > pages in parallel. > > > > BUG=chromium:524425 > > LOG=N > > > > Committed: https://crrev.com/138d9bae5d7014e0d205634a49b5eac3697744c8 > > Cr-Commit-Position: refs/heads/master@{#32349} > > TBR=mlippautz@chromium.org > NOPRESUBMIT=true > NOTREECHECKS=true > NOTRY=true > BUG=chromium:524425 > > Committed: https://crrev.com/aa24a3135ec308e1f84bce334844caf0cae2437a > Cr-Commit-Position: refs/heads/master@{#32462} TBR=mlippautz@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1493523003 Cr-Commit-Position: refs/heads/master@{#32500}
-
- 01 Dec, 2015 4 commits
-
-
hpayer authored
Revert of [heap] Refactor evacuation for young and old gen into visitors. (patchset #5 id:80001 of https://codereview.chromium.org/1470253002/ ) Reason for revert: Still investigating bad canary. Original issue's description: > [heap] Refactor evacuation for young and old gen into visitors. > > Create a visitor for evacuating objects for young and old generation. This is > the first step of preparing a task to process, both, newspace and oldspace > pages in parallel. > > BUG=chromium:524425 > LOG=N > > Committed: https://crrev.com/138d9bae5d7014e0d205634a49b5eac3697744c8 > Cr-Commit-Position: refs/heads/master@{#32349} TBR=mlippautz@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1483393002 Cr-Commit-Position: refs/heads/master@{#32462}
-
hpayer authored
Revert of [heap] Cleanup mark bit usage. (patchset #1 id:1 of https://codereview.chromium.org/1474203003/ ) Reason for revert: Still investigating bad canary. Original issue's description: > [heap] Cleanup mark bit usage. > > BUG= > > Committed: https://crrev.com/5874ac783ff9bc4bb4b2fda81f5077f06619f96c > Cr-Commit-Position: refs/heads/master@{#32362} TBR=mlippautz@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= Review URL: https://codereview.chromium.org/1490753003 Cr-Commit-Position: refs/heads/master@{#32461}
-
hpayer authored
Revert of [heap] Unify evacuating an object for new and old generation. (patchset #2 id:20001 of https://codereview.chromium.org/1481873002/ ) Reason for revert: Still investigating bad canary. Original issue's description: > [heap] Unify evacuating an object for new and old generation. > > BUG=chromium:524425 > LOG=N > > Committed: https://crrev.com/afb8bcce8ba889280ed747eb218d287ddd233b4a > Cr-Commit-Position: refs/heads/master@{#32365} TBR=mlippautz@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:524425 Review URL: https://codereview.chromium.org/1483963004 Cr-Commit-Position: refs/heads/master@{#32460}
-
mstarzinger authored
This moves the decision whether code flushing is active into the setup phase of the GC. Components are no longer allowed to dynamically switch the code flushing mode on demand. R=hpayer@chromium.org Review URL: https://codereview.chromium.org/1487743002 Cr-Commit-Position: refs/heads/master@{#32446}
-
- 30 Nov, 2015 2 commits
-
-
hpayer authored
Revert of Introduce instance type for transition arrays. (patchset #6 id:100001 of https://codereview.chromium.org/1480873003/ ) Reason for revert: Broken canary. Trying to find out root cause. Original issue's description: > Introduce instance type for transition arrays. > > The motivation is to allow specialized marking visitor for transition arrays and collect all transition array in a list for post-processing in ClearNonLiveReferences. > > BUG=chromium:554488 > LOG=NO > > Committed: https://crrev.com/026095a3c7932573e1810b8064ec3008ed696601 > Cr-Commit-Position: refs/heads/master@{#32396} TBR=mlippautz@chromium.org,jkummerow@chromium.org,ulan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:554488 Review URL: https://codereview.chromium.org/1483003002 Cr-Commit-Position: refs/heads/master@{#32404}
-
ulan authored
The motivation is to allow specialized marking visitor for transition arrays and collect all transition array in a list for post-processing in ClearNonLiveReferences. BUG=chromium:554488 LOG=NO Review URL: https://codereview.chromium.org/1480873003 Cr-Commit-Position: refs/heads/master@{#32396}
-
- 27 Nov, 2015 3 commits
-
-
mlippautz authored
BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1481873002 Cr-Commit-Position: refs/heads/master@{#32365}
-
hpayer authored
BUG= Review URL: https://codereview.chromium.org/1474203003 Cr-Commit-Position: refs/heads/master@{#32362}
-
mlippautz authored
Compaction selection now derives target fragmentation based on compaction speed and a goal per page, if compaction speed has been traced. This way we avoid overlong compaction of single pages. This change could regress memory consumption if (a) the memory reducer does not kick in, and (b) lots of medium fragmented pages would be compacted in our fast path. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1480553004 Cr-Commit-Position: refs/heads/master@{#32361}
-
- 26 Nov, 2015 1 commit
-
-
mlippautz authored
Create a visitor for evacuating objects for young and old generation. This is the first step of preparing a task to process, both, newspace and oldspace pages in parallel. BUG=chromium:524425 LOG=N Review URL: https://codereview.chromium.org/1470253002 Cr-Commit-Position: refs/heads/master@{#32349}
-
- 25 Nov, 2015 2 commits
-
-
ofrobots authored
No more uses left for this code (thank goodness.) R=hpayer@chromium.org BUG= Review URL: https://codereview.chromium.org/1474693003 Cr-Commit-Position: refs/heads/master@{#32305}
-
ulan authored
BUG=chromium:554488 LOG=NO Review URL: https://codereview.chromium.org/1470773003 Cr-Commit-Position: refs/heads/master@{#32272}
-
- 24 Nov, 2015 1 commit
-
-
ulan authored
Optimize ClearNonLiveReferences: collect dependent code only from maps that are embedded in optimize code. BUG=chromium:554488 LOG=NO Review URL: https://codereview.chromium.org/1471703002 Cr-Commit-Position: refs/heads/master@{#32218}
-
- 17 Nov, 2015 1 commit
-
-
ulan authored
This splits the work to be done for dead and life maps and avoids unnecessary operations in the hot loop. Results for v8.infinite_scroll: Before: nonlive_refs len: 93 min: 0.0 max: 6.3 avg: 1.35268817204 [0,5[: 91 [5,10[: 2 After: nonlive_refs len: 91 min: 0.0 max: 4.2 avg: 0.968131868132 [0,5[: 91 BUG=chromium:554488 LOG=no Review URL: https://codereview.chromium.org/1441633002 Cr-Commit-Position: refs/heads/master@{#32042}
-
- 16 Nov, 2015 1 commit
-
-
mlippautz authored
This way we can properly cancel them on the main thread in case they never get scheduled by the platform. BUG=chromium:524425 LOG=N CQ_EXTRA_TRYBOTS=tryserver.v8:v8_linux_arm64_gc_stress_dbg;tryserver.v8:v8_linux_gc_stress_dbg;tryserver.v8:v8_mac_gc_stress_dbg;tryserver.v8:v8_linux64_msan_rel;tryserver.v8:v8_linux64_tsan_rel;tryserver.v8:v8_mac64_asan_rel Review URL: https://codereview.chromium.org/1446523003 Cr-Commit-Position: refs/heads/master@{#32007}
-
- 13 Nov, 2015 1 commit
-
-
ishell authored
This CL introduces the following visitors: 1) RecordMigratedSlotVisitor which simplifies MarkCompactCollector::MigrateObject(). 2) IteratePointersToFromSpaceVisitor which simplifies Heap::IteratePointersToFromSpace(). 3) FindPointersToNewSpaceVisitor which simplifies StoreBuffer::IteratePointersToNewSpace(). These changes make the object's body descriptors the one and only place that knows how to traverse the object. Review URL: https://codereview.chromium.org/1441453002 Cr-Commit-Position: refs/heads/master@{#31992}
-
- 09 Nov, 2015 1 commit
-
-
mstarzinger authored
This separates the post-processing step for optimized code maps out of the CodeFlusher. It uses the complete SharedFunctionInfo::Iterator to visit all candidates instead of gathering candidates during marking. Gathering candidates during marking no longer makes sense, now that the majority of SharedFunctionInfo objects will hold such an optimized code map. Also it reduces complexity of the implementation. Also conflating this mechanism with "code flushing" was confusing. This reverts commit 7f1fb29f. R=ulan@chromium.org Review URL: https://codereview.chromium.org/1418453008 Cr-Commit-Position: refs/heads/master@{#31876}
-
- 05 Nov, 2015 1 commit
-
-
mstarzinger authored
Revert of [heap] Separate out optimized code map processing. (patchset #2 id:20001 of https://codereview.chromium.org/1421903012/ ) Reason for revert: Causes GC-Stress failures. Original issue's description: > [heap] Separate out optimized code map processing. > > This separates the post-processing step for optimized code maps out of > the CodeFlusher. It uses the complete SharedFunctionInfo::Iterator to > visit all candidates instead of gathering candidates during marking. > > Gathering candidates during marking no longer makes sense, now that the > majority of SharedFunctionInfo objects will hold such an optimized code > map. Also it reduces complexity of the implementation. Also conflating > this mechanism with "code flushing" was confusing. > > This reverts commit b6644e84. > > R=ulan@chromium.org > > Committed: https://crrev.com/bb7a5eb2d89bae25f2b5ecb9515669f0ac73c111 > Cr-Commit-Position: refs/heads/master@{#31836} TBR=ulan@chromium.org NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true Review URL: https://codereview.chromium.org/1412063012 Cr-Commit-Position: refs/heads/master@{#31837}
-