Parallel marking for full MC collector |
|||
Issue descriptionTracking bug for implementing parallel marking in the full MC atomic pause.
,
Jul 28 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d9d059175e932b7b921e858426ac9f1133914962 commit d9d059175e932b7b921e858426ac9f1133914962 Author: Michael Lippautz <mlippautz@chromium.org> Date: Fri Jul 28 13:35:24 2017 [heap] Decouple RootMarkingVisitor used for seeding items from Minor MC This visitor can be reused by the full MC when seeding root items. Bug: chromium:750084 Change-Id: I9d46ce55737961d8f72a34b06f3314c8f75f3b4d Reviewed-on: https://chromium-review.googlesource.com/591451 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#46972} [modify] https://crrev.com/d9d059175e932b7b921e858426ac9f1133914962/src/heap/mark-compact.cc [modify] https://crrev.com/d9d059175e932b7b921e858426ac9f1133914962/src/heap/mark-compact.h
,
Aug 2 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/652654291c0d4df8ea0fb6949a89f403afac0a79 commit 652654291c0d4df8ea0fb6949a89f403afac0a79 Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Aug 02 18:10:22 2017 [heap] MC marking: Refactor roots visitation Use separate visitors for roots visitation: - A general RootVisitor for all regular roots - An ObjectVisitor that is able to process contents of the string table and code hanging of the top optimized frame Bug: chromium:750084 Change-Id: I21aaa18760dede8a9419de2890a47c6dcf7efa3b Reviewed-on: https://chromium-review.googlesource.com/598239 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47089} [modify] https://crrev.com/652654291c0d4df8ea0fb6949a89f403afac0a79/src/heap/mark-compact.cc [modify] https://crrev.com/652654291c0d4df8ea0fb6949a89f403afac0a79/src/heap/mark-compact.h
,
Aug 10 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/7adbb4a24c72abba535c0e2156b3e66441d24a6a commit 7adbb4a24c72abba535c0e2156b3e66441d24a6a Author: Michael Lippautz <mlippautz@chromium.org> Date: Thu Aug 10 18:38:50 2017 [heap] MC: Go through marking deque when marking roots Bug: chromium:750084 Change-Id: I3c0059f1e986b5e4400f84f44b7f179e7232eae1 Reviewed-on: https://chromium-review.googlesource.com/610781 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47292} [modify] https://crrev.com/7adbb4a24c72abba535c0e2156b3e66441d24a6a/src/heap/mark-compact-inl.h [modify] https://crrev.com/7adbb4a24c72abba535c0e2156b3e66441d24a6a/src/heap/mark-compact.cc [modify] https://crrev.com/7adbb4a24c72abba535c0e2156b3e66441d24a6a/src/heap/mark-compact.h
,
Aug 22 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ee86863ea39fc487162bdb2a81129d54167c2ce0 commit ee86863ea39fc487162bdb2a81129d54167c2ce0 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Aug 22 16:34:26 2017 [heap] Remove recursive marking in full MC In a parallel marker world the recursion just avoids proper work stealing. It is removed in a separate CL to see the impact of recursive marking on the benchmarks. Bug: chromium:750084 Change-Id: Id37ae029e386b45c94e5fecbf349b31d2573d5c0 Reviewed-on: https://chromium-review.googlesource.com/625881 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#47516} [modify] https://crrev.com/ee86863ea39fc487162bdb2a81129d54167c2ce0/src/heap/mark-compact.cc
,
Aug 24 2017
,
Aug 30 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/9619b7f23cc6914629b6c277604feadea1b5c2dd commit 9619b7f23cc6914629b6c277604feadea1b5c2dd Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Aug 30 12:05:56 2017 [heap] Factor out the barrier from Scavenger and add tests Bug: chromium:738865 , chromium:750084 Change-Id: Ife30da4be118cd6f3212e84752978ebb39500f15 Reviewed-on: https://chromium-review.googlesource.com/641414 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#47710} [modify] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/BUILD.gn [add] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/src/heap/barrier.h [modify] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/src/heap/heap.cc [modify] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/src/heap/scavenger.cc [modify] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/src/heap/scavenger.h [modify] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/src/v8.gyp [modify] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/test/unittests/BUILD.gn [add] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/test/unittests/heap/barrier-unittest.cc [modify] https://crrev.com/9619b7f23cc6914629b6c277604feadea1b5c2dd/test/unittests/unittests.gyp
,
Sep 25 2017
,
Oct 4 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f46a92c2a8c716c6ad49ea61c4283bdffba3e52a commit f46a92c2a8c716c6ad49ea61c4283bdffba3e52a Author: Michael Lippautz <mlippautz@chromium.org> Date: Wed Oct 04 11:24:09 2017 [heap] MC: Parallel marking for the atomic pause Reuse existing concurrent marking infrastructure for marking in the atomic pause. Details: - Do not stop concurrent marking when entering the atomic pause. - Start concurrent marking when it was off. This is required for non-incremental MC GCs. - Use atomic marking state in MC. - Transition through grey and avoid white->black. CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Bug: chromium:750084 Change-Id: I9f84661e69beac6254494907bdfe94e865b1e3ab Reviewed-on: https://chromium-review.googlesource.com/690002 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48281} [modify] https://crrev.com/f46a92c2a8c716c6ad49ea61c4283bdffba3e52a/src/heap-symbols.h [modify] https://crrev.com/f46a92c2a8c716c6ad49ea61c4283bdffba3e52a/src/heap/gc-tracer.cc [modify] https://crrev.com/f46a92c2a8c716c6ad49ea61c4283bdffba3e52a/src/heap/incremental-marking.cc [modify] https://crrev.com/f46a92c2a8c716c6ad49ea61c4283bdffba3e52a/src/heap/incremental-marking.h [modify] https://crrev.com/f46a92c2a8c716c6ad49ea61c4283bdffba3e52a/src/heap/mark-compact-inl.h [modify] https://crrev.com/f46a92c2a8c716c6ad49ea61c4283bdffba3e52a/src/heap/mark-compact.cc [modify] https://crrev.com/f46a92c2a8c716c6ad49ea61c4283bdffba3e52a/src/heap/mark-compact.h
,
Oct 16 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/4b42656dd6fca982c60185c004e2648093d70b51 commit 4b42656dd6fca982c60185c004e2648093d70b51 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 16 10:00:08 2017 [heap] Unify incremental and main marking visitor With parallel marking enabled, both visitors have to be equal wrt. to actual visitation. The differences are captured by template parameters: - Retaining path tracing which we only do for full GCs. - Incremental marking of FixedArray. CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Bug: chromium:694255 , chromium:750084 Change-Id: I177aeb0ee4f6a35e2f592ba257c9ddc14f88fd99 Reviewed-on: https://chromium-review.googlesource.com/704935 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48582} [modify] https://crrev.com/4b42656dd6fca982c60185c004e2648093d70b51/src/heap/heap.h [modify] https://crrev.com/4b42656dd6fca982c60185c004e2648093d70b51/src/heap/incremental-marking.cc [modify] https://crrev.com/4b42656dd6fca982c60185c004e2648093d70b51/src/heap/mark-compact-inl.h [modify] https://crrev.com/4b42656dd6fca982c60185c004e2648093d70b51/src/heap/mark-compact.cc [modify] https://crrev.com/4b42656dd6fca982c60185c004e2648093d70b51/src/heap/mark-compact.h [modify] https://crrev.com/4b42656dd6fca982c60185c004e2648093d70b51/src/heap/objects-visiting-inl.h [modify] https://crrev.com/4b42656dd6fca982c60185c004e2648093d70b51/src/heap/objects-visiting.h
,
Oct 24 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/af424eeab17f77617c52d5f6d631a3ebf574c017 commit af424eeab17f77617c52d5f6d631a3ebf574c017 Author: Michael Lippautz <mlippautz@chromium.org> Date: Tue Oct 24 17:18:01 2017 [heap] MarkCompact marking: Avoid atomics on live byte count Similar to the incremental marker, rename the MarkingState to MajorMarkingState and avoid using atomics on live byte count as the concurrent tasks cache its value. CQ_INCLUDE_TRYBOTS=master.tryserver.v8:v8_linux64_tsan_rel;master.tryserver.v8:v8_linux64_tsan_concurrent_marking_rel_ng;master.tryserver.blink:linux_trusty_blink_rel;master.tryserver.chromium.linux:linux_optional_gpu_tests_rel;master.tryserver.chromium.mac:mac_optional_gpu_tests_rel;master.tryserver.chromium.win:win_optional_gpu_tests_rel;master.tryserver.chromium.android:android_optional_gpu_tests_rel Bug: chromium:750084 Change-Id: Id37bb89385d4fbae95542073ea652617e61010d5 Reviewed-on: https://chromium-review.googlesource.com/735399 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#48885} [modify] https://crrev.com/af424eeab17f77617c52d5f6d631a3ebf574c017/src/heap/incremental-marking.h [modify] https://crrev.com/af424eeab17f77617c52d5f6d631a3ebf574c017/src/heap/mark-compact-inl.h [modify] https://crrev.com/af424eeab17f77617c52d5f6d631a3ebf574c017/src/heap/mark-compact.cc [modify] https://crrev.com/af424eeab17f77617c52d5f6d631a3ebf574c017/src/heap/mark-compact.h [modify] https://crrev.com/af424eeab17f77617c52d5f6d631a3ebf574c017/src/heap/spaces.h
,
Nov 7 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/8ba5cfd87374a27894da8db65188980dcc3ff33c commit 8ba5cfd87374a27894da8db65188980dcc3ff33c Author: Ulan Degenbaev <ulan@chromium.org> Date: Tue Nov 07 11:27:51 2017 [heap] Introduce a flag for enabling parallel marking in atomic pause. The flag is --parallel-marking. Bug: chromium:750084 Change-Id: I20ab5945d2cc41d44b29d7090a3436d028588540 Reviewed-on: https://chromium-review.googlesource.com/756709 Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Commit-Queue: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#49178} [modify] https://crrev.com/8ba5cfd87374a27894da8db65188980dcc3ff33c/src/flag-definitions.h [modify] https://crrev.com/8ba5cfd87374a27894da8db65188980dcc3ff33c/src/heap/mark-compact.cc
,
Nov 20 2017
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/a9cab08e6c38a11c370350fdc844e32c361179d9 commit a9cab08e6c38a11c370350fdc844e32c361179d9 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Nov 20 13:03:03 2017 [heap] Re-enable parallel marking Bug: chromium:750084 Change-Id: I3d449ab76101100866b18db776b9f282154a77d9 Reviewed-on: https://chromium-review.googlesource.com/768679 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#49491} [modify] https://crrev.com/a9cab08e6c38a11c370350fdc844e32c361179d9/src/flag-definitions.h [modify] https://crrev.com/a9cab08e6c38a11c370350fdc844e32c361179d9/test/cctest/cctest.h [modify] https://crrev.com/a9cab08e6c38a11c370350fdc844e32c361179d9/test/cctest/heap/test-compaction.cc [modify] https://crrev.com/a9cab08e6c38a11c370350fdc844e32c361179d9/test/cctest/heap/test-heap.cc |
|||
►
Sign in to add a comment |
|||
Comment 1 by bugdroid1@chromium.org
, Jul 28 2017