Implement Concurrent Remembered Set Filtering
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6f06c36c3e1ecb41f1d301ad2159366f876d53c8 commit 6f06c36c3e1ecb41f1d301ad2159366f876d53c8 Author: hpayer <hpayer@chromium.org> Date: Wed Sep 21 13:20:36 2016 [heap] Make typed slot set state and operations atomic. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2360513002 Cr-Commit-Position: refs/heads/master@{#39596} [modify] https://crrev.com/6f06c36c3e1ecb41f1d301ad2159366f876d53c8/src/heap/remembered-set.h [modify] https://crrev.com/6f06c36c3e1ecb41f1d301ad2159366f876d53c8/src/heap/slot-set.h [modify] https://crrev.com/6f06c36c3e1ecb41f1d301ad2159366f876d53c8/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ff8101d8e8d5e14dfa89de1252c510e6a0775539 commit ff8101d8e8d5e14dfa89de1252c510e6a0775539 Author: hpayer <hpayer@chromium.org> Date: Wed Sep 21 20:10:31 2016 [heap] Concurrently free empty typed slot set chunks. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2352423002 Cr-Commit-Position: refs/heads/master@{#39605} [modify] https://crrev.com/ff8101d8e8d5e14dfa89de1252c510e6a0775539/src/heap/mark-compact.cc [modify] https://crrev.com/ff8101d8e8d5e14dfa89de1252c510e6a0775539/src/heap/remembered-set.cc [modify] https://crrev.com/ff8101d8e8d5e14dfa89de1252c510e6a0775539/src/heap/remembered-set.h [modify] https://crrev.com/ff8101d8e8d5e14dfa89de1252c510e6a0775539/src/heap/slot-set.h [modify] https://crrev.com/ff8101d8e8d5e14dfa89de1252c510e6a0775539/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/c216b7fa83228387e30efd2ee8f4fed81fa38007 commit c216b7fa83228387e30efd2ee8f4fed81fa38007 Author: adamk <adamk@chromium.org> Date: Wed Sep 21 23:48:40 2016 Revert of [heap] Concurrently free empty typed slot set chunks. (patchset #3 id:40001 of https://codereview.chromium.org/2352423002/ ) Reason for revert: TSAN failures on Linux64: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11850 Also saw various threading-related flakiness on multiple bots. Original issue's description: > [heap] Concurrently free empty typed slot set chunks. > > BUG= chromium:648568 > > Committed: https://crrev.com/ff8101d8e8d5e14dfa89de1252c510e6a0775539 > Cr-Commit-Position: refs/heads/master@{#39605} TBR=ulan@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2358333002 Cr-Commit-Position: refs/heads/master@{#39607} [modify] https://crrev.com/c216b7fa83228387e30efd2ee8f4fed81fa38007/src/heap/mark-compact.cc [modify] https://crrev.com/c216b7fa83228387e30efd2ee8f4fed81fa38007/src/heap/remembered-set.cc [modify] https://crrev.com/c216b7fa83228387e30efd2ee8f4fed81fa38007/src/heap/remembered-set.h [modify] https://crrev.com/c216b7fa83228387e30efd2ee8f4fed81fa38007/src/heap/slot-set.h [modify] https://crrev.com/c216b7fa83228387e30efd2ee8f4fed81fa38007/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/de42ed28626b990c88ccdaabfe8380a067ec1350 commit de42ed28626b990c88ccdaabfe8380a067ec1350 Author: hpayer <hpayer@chromium.org> Date: Thu Sep 22 12:44:54 2016 [heap] Only insert new slot set entries. BUG=chromium:648973, chromium:648568 Review-Url: https://codereview.chromium.org/2360233002 Cr-Commit-Position: refs/heads/master@{#39624} [modify] https://crrev.com/de42ed28626b990c88ccdaabfe8380a067ec1350/src/heap/slot-set.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ec3835751d678c0b4a3fda47d11ffa107cd27e23 commit ec3835751d678c0b4a3fda47d11ffa107cd27e23 Author: hpayer <hpayer@chromium.org> Date: Thu Sep 22 14:32:28 2016 [heap] Reland Concurrently free empty typed slot set chunks. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2365603002 Cr-Commit-Position: refs/heads/master@{#39630} [modify] https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23/src/heap/mark-compact.cc [modify] https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23/src/heap/remembered-set.cc [modify] https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23/src/heap/remembered-set.h [modify] https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23/src/heap/slot-set.h [modify] https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23/src/heap/spaces.cc [modify] https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23/src/heap/spaces.h [modify] https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/20caa8770ac3223a0f80834329dddde50c3cb4a0 commit 20caa8770ac3223a0f80834329dddde50c3cb4a0 Author: machenbach <machenbach@chromium.org> Date: Thu Sep 22 15:14:43 2016 Revert of [heap] Reland Concurrently free empty typed slot set chunks. (patchset #2 id:20001 of https://codereview.chromium.org/2365603002/ ) Reason for revert: Leaks and TSAN: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20ASAN/builds/15441 https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/11867 Original issue's description: > [heap] Reland Concurrently free empty typed slot set chunks. > > BUG= chromium:648568 > > Committed: https://crrev.com/ec3835751d678c0b4a3fda47d11ffa107cd27e23 > Cr-Commit-Position: refs/heads/master@{#39630} TBR=ulan@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2364603002 Cr-Commit-Position: refs/heads/master@{#39632} [modify] https://crrev.com/20caa8770ac3223a0f80834329dddde50c3cb4a0/src/heap/mark-compact.cc [modify] https://crrev.com/20caa8770ac3223a0f80834329dddde50c3cb4a0/src/heap/remembered-set.cc [modify] https://crrev.com/20caa8770ac3223a0f80834329dddde50c3cb4a0/src/heap/remembered-set.h [modify] https://crrev.com/20caa8770ac3223a0f80834329dddde50c3cb4a0/src/heap/slot-set.h [modify] https://crrev.com/20caa8770ac3223a0f80834329dddde50c3cb4a0/src/heap/spaces.cc [modify] https://crrev.com/20caa8770ac3223a0f80834329dddde50c3cb4a0/src/heap/spaces.h [modify] https://crrev.com/20caa8770ac3223a0f80834329dddde50c3cb4a0/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b1b47aaea73e744f6f4a3709a90f08397399f71a commit b1b47aaea73e744f6f4a3709a90f08397399f71a Author: hpayer <hpayer@chromium.org> Date: Mon Sep 26 15:54:03 2016 [heap] Reland Concurrently free empty typed slot set chunks. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2366393002 Cr-Commit-Position: refs/heads/master@{#39735} [modify] https://crrev.com/b1b47aaea73e744f6f4a3709a90f08397399f71a/src/heap/mark-compact.cc [modify] https://crrev.com/b1b47aaea73e744f6f4a3709a90f08397399f71a/src/heap/remembered-set.cc [modify] https://crrev.com/b1b47aaea73e744f6f4a3709a90f08397399f71a/src/heap/remembered-set.h [modify] https://crrev.com/b1b47aaea73e744f6f4a3709a90f08397399f71a/src/heap/slot-set.h [modify] https://crrev.com/b1b47aaea73e744f6f4a3709a90f08397399f71a/src/heap/spaces.cc [modify] https://crrev.com/b1b47aaea73e744f6f4a3709a90f08397399f71a/src/heap/spaces.h [modify] https://crrev.com/b1b47aaea73e744f6f4a3709a90f08397399f71a/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b3a46ea45f00510c5c3da4f96323a0ab7e2dd6c4 commit b3a46ea45f00510c5c3da4f96323a0ab7e2dd6c4 Author: hpayer <hpayer@chromium.org> Date: Tue Sep 27 12:40:06 2016 [heap] Call FreeToBeFreedChunks in TypedSlotSet destructor. BUG= chromium:650577 , chromium:648568 Review-Url: https://codereview.chromium.org/2372933003 Cr-Commit-Position: refs/heads/master@{#39767} [modify] https://crrev.com/b3a46ea45f00510c5c3da4f96323a0ab7e2dd6c4/src/heap/slot-set.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/1cb133e312a9e33c78c8cfca6e8bd59246f44d02 commit 1cb133e312a9e33c78c8cfca6e8bd59246f44d02 Author: hpayer <hpayer@chromium.org> Date: Wed Oct 05 09:26:55 2016 [heap] Concurrently free empty slot set buckets. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2390743005 Cr-Commit-Position: refs/heads/master@{#39982} [modify] https://crrev.com/1cb133e312a9e33c78c8cfca6e8bd59246f44d02/src/heap/mark-compact.cc [modify] https://crrev.com/1cb133e312a9e33c78c8cfca6e8bd59246f44d02/src/heap/remembered-set.cc [modify] https://crrev.com/1cb133e312a9e33c78c8cfca6e8bd59246f44d02/src/heap/remembered-set.h [modify] https://crrev.com/1cb133e312a9e33c78c8cfca6e8bd59246f44d02/src/heap/slot-set.h [modify] https://crrev.com/1cb133e312a9e33c78c8cfca6e8bd59246f44d02/src/heap/spaces.cc [modify] https://crrev.com/1cb133e312a9e33c78c8cfca6e8bd59246f44d02/src/heap/spaces.h [modify] https://crrev.com/1cb133e312a9e33c78c8cfca6e8bd59246f44d02/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/84b81f8c868a6ea0ade12be0b38798db49853733 commit 84b81f8c868a6ea0ade12be0b38798db49853733 Author: hpayer <hpayer@chromium.org> Date: Thu Oct 06 12:39:26 2016 [heap] Do not touch pre-freed typed slot set memory anymore. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2397473004 Cr-Commit-Position: refs/heads/master@{#40034} [modify] https://crrev.com/84b81f8c868a6ea0ade12be0b38798db49853733/src/heap/slot-set.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/1f89d369fc952a2826f9f62901fb84fcf30920d7 commit 1f89d369fc952a2826f9f62901fb84fcf30920d7 Author: hpayer <hpayer@chromium.org> Date: Thu Oct 06 13:59:40 2016 [heap] Concurrent slot filtering in sweeper threads. This is an intermediate step for concurrent slot filtering. This CL already makes filtering concurrent, but does not integrate it in the actual sweeping. This will be done in two follow up CLs. One for the regular slot set and one for the typed slot set. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2401563002 Cr-Commit-Position: refs/heads/master@{#40040} [modify] https://crrev.com/1f89d369fc952a2826f9f62901fb84fcf30920d7/src/heap/mark-compact.cc [modify] https://crrev.com/1f89d369fc952a2826f9f62901fb84fcf30920d7/src/heap/mark-compact.h [modify] https://crrev.com/1f89d369fc952a2826f9f62901fb84fcf30920d7/src/heap/remembered-set.cc [modify] https://crrev.com/1f89d369fc952a2826f9f62901fb84fcf30920d7/src/heap/remembered-set.h [modify] https://crrev.com/1f89d369fc952a2826f9f62901fb84fcf30920d7/src/heap/slot-set.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/0083c0931a1def528aca12b29133dd26c718fe28 commit 0083c0931a1def528aca12b29133dd26c718fe28 Author: hpayer <hpayer@chromium.org> Date: Thu Oct 06 14:20:42 2016 Revert of [heap] Concurrent slot filtering in sweeper threads. (patchset #4 id:60001 of https://codereview.chromium.org/2401563002/ ) Reason for revert: Crashing. Original issue's description: > [heap] Concurrent slot filtering in sweeper threads. > > This is an intermediate step for concurrent slot filtering. This CL already makes filtering concurrent, but does not integrate it in the actual sweeping. This will be done in two follow up CLs. One for the regular slot set and one for the typed slot set. > > BUG= chromium:648568 > > Committed: https://crrev.com/1f89d369fc952a2826f9f62901fb84fcf30920d7 > Cr-Commit-Position: refs/heads/master@{#40040} TBR=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:648568 Review-Url: https://codereview.chromium.org/2399003002 Cr-Commit-Position: refs/heads/master@{#40043} [modify] https://crrev.com/0083c0931a1def528aca12b29133dd26c718fe28/src/heap/mark-compact.cc [modify] https://crrev.com/0083c0931a1def528aca12b29133dd26c718fe28/src/heap/mark-compact.h [modify] https://crrev.com/0083c0931a1def528aca12b29133dd26c718fe28/src/heap/remembered-set.cc [modify] https://crrev.com/0083c0931a1def528aca12b29133dd26c718fe28/src/heap/remembered-set.h [modify] https://crrev.com/0083c0931a1def528aca12b29133dd26c718fe28/src/heap/slot-set.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e5b07adfb1ddd3db95bed1d166547c54a501ef8b commit e5b07adfb1ddd3db95bed1d166547c54a501ef8b Author: hpayer <hpayer@chromium.org> Date: Fri Oct 07 09:15:45 2016 [heap] Use the thread-safe free modes also for RemoveRange in SlotSet. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2397373002 Cr-Commit-Position: refs/heads/master@{#40075} [modify] https://crrev.com/e5b07adfb1ddd3db95bed1d166547c54a501ef8b/src/heap/heap.cc [modify] https://crrev.com/e5b07adfb1ddd3db95bed1d166547c54a501ef8b/src/heap/mark-compact.cc [modify] https://crrev.com/e5b07adfb1ddd3db95bed1d166547c54a501ef8b/src/heap/remembered-set.h [modify] https://crrev.com/e5b07adfb1ddd3db95bed1d166547c54a501ef8b/src/heap/slot-set.h [modify] https://crrev.com/e5b07adfb1ddd3db95bed1d166547c54a501ef8b/src/heap/spaces.cc [modify] https://crrev.com/e5b07adfb1ddd3db95bed1d166547c54a501ef8b/test/cctest/heap/test-heap.cc [modify] https://crrev.com/e5b07adfb1ddd3db95bed1d166547c54a501ef8b/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/da8654dba086c13a77fae33ed7829c39789ccba5 commit da8654dba086c13a77fae33ed7829c39789ccba5 Author: hpayer <hpayer@chromium.org> Date: Tue Oct 11 14:41:42 2016 [heap] RemoveRange of SlotSet should not push nullptr for empty buckets on the pre-free stack. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2412453003 Cr-Commit-Position: refs/heads/master@{#40176} [modify] https://crrev.com/da8654dba086c13a77fae33ed7829c39789ccba5/src/heap/slot-set.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/10ffd2b111aff1e3a85a7eb61119c177086c15a0 commit 10ffd2b111aff1e3a85a7eb61119c177086c15a0 Author: hpayer <hpayer@chromium.org> Date: Wed Oct 12 12:04:51 2016 [heap] Old-to-new pointer updates need atomic accessors. This CL also introduces a NoBarrierAtomicValue with NoBarrier accessors. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2408233004 Cr-Commit-Position: refs/heads/master@{#40213} [modify] https://crrev.com/10ffd2b111aff1e3a85a7eb61119c177086c15a0/src/base/atomic-utils.h [modify] https://crrev.com/10ffd2b111aff1e3a85a7eb61119c177086c15a0/src/heap/mark-compact.cc [modify] https://crrev.com/10ffd2b111aff1e3a85a7eb61119c177086c15a0/test/unittests/base/atomic-utils-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/4c3a1725399a0bbc0c1222af360900cd845f0f08 commit 4c3a1725399a0bbc0c1222af360900cd845f0f08 Author: hpayer <hpayer@chromium.org> Date: Wed Oct 12 13:07:32 2016 [heap] Reland concurrent slot filtering in sweeper threads. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2403423007 Cr-Commit-Position: refs/heads/master@{#40221} [modify] https://crrev.com/4c3a1725399a0bbc0c1222af360900cd845f0f08/src/heap/mark-compact.cc [modify] https://crrev.com/4c3a1725399a0bbc0c1222af360900cd845f0f08/src/heap/mark-compact.h [modify] https://crrev.com/4c3a1725399a0bbc0c1222af360900cd845f0f08/src/heap/remembered-set.cc [modify] https://crrev.com/4c3a1725399a0bbc0c1222af360900cd845f0f08/src/heap/remembered-set.h [modify] https://crrev.com/4c3a1725399a0bbc0c1222af360900cd845f0f08/src/heap/slot-set.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/18db69c38c93450c1ae957999fc48c465f111f00 commit 18db69c38c93450c1ae957999fc48c465f111f00 Author: hpayer <hpayer@chromium.org> Date: Thu Oct 13 13:43:01 2016 [heap] Move slot filtering logic into sweeper. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2418773002 Cr-Commit-Position: refs/heads/master@{#40267} [modify] https://crrev.com/18db69c38c93450c1ae957999fc48c465f111f00/src/heap/mark-compact.cc [modify] https://crrev.com/18db69c38c93450c1ae957999fc48c465f111f00/src/heap/remembered-set.cc [modify] https://crrev.com/18db69c38c93450c1ae957999fc48c465f111f00/src/heap/remembered-set.h [modify] https://crrev.com/18db69c38c93450c1ae957999fc48c465f111f00/src/heap/slot-set.h [modify] https://crrev.com/18db69c38c93450c1ae957999fc48c465f111f00/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/cdc3459a858a6b86e96cedf841f7b95e49fef272 commit cdc3459a858a6b86e96cedf841f7b95e49fef272 Author: machenbach <machenbach@chromium.org> Date: Fri Oct 14 06:59:07 2016 Revert of [heap] Move slot filtering logic into sweeper. (patchset #4 id:60001 of https://codereview.chromium.org/2418773002/ ) Reason for revert: [Sheriff] Speculative revert for heap corruption on all platforms, e.g.: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/12377 https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/12379 https://build.chromium.org/p/client.v8/builders/V8%20Win32/builds/4819 https://build.chromium.org/p/client.v8/builders/V8%20Win32%20-%20nosnap%20-%20shared/builds/16783 https://build.chromium.org/p/client.v8/builders/V8%20Mac64%20-%20debug/builds/10007 Original issue's description: > [heap] Move slot filtering logic into sweeper. > > BUG= chromium:648568 > > Committed: https://crrev.com/18db69c38c93450c1ae957999fc48c465f111f00 > Cr-Commit-Position: refs/heads/master@{#40267} TBR=ulan@chromium.org,mlippautz@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2418053002 Cr-Commit-Position: refs/heads/master@{#40292} [modify] https://crrev.com/cdc3459a858a6b86e96cedf841f7b95e49fef272/src/heap/mark-compact.cc [modify] https://crrev.com/cdc3459a858a6b86e96cedf841f7b95e49fef272/src/heap/remembered-set.cc [modify] https://crrev.com/cdc3459a858a6b86e96cedf841f7b95e49fef272/src/heap/remembered-set.h [modify] https://crrev.com/cdc3459a858a6b86e96cedf841f7b95e49fef272/src/heap/slot-set.h [modify] https://crrev.com/cdc3459a858a6b86e96cedf841f7b95e49fef272/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/60cb6013d40c4c202b9389dc4dc2b0be07b4b267 commit 60cb6013d40c4c202b9389dc4dc2b0be07b4b267 Author: hpayer <hpayer@chromium.org> Date: Tue Oct 18 10:06:37 2016 [heap] Reland move slot filtering logic into sweeper. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2428493003 Cr-Commit-Position: refs/heads/master@{#40393} [modify] https://crrev.com/60cb6013d40c4c202b9389dc4dc2b0be07b4b267/src/base/atomic-utils.h [modify] https://crrev.com/60cb6013d40c4c202b9389dc4dc2b0be07b4b267/src/heap/mark-compact.cc [modify] https://crrev.com/60cb6013d40c4c202b9389dc4dc2b0be07b4b267/src/heap/remembered-set.cc [modify] https://crrev.com/60cb6013d40c4c202b9389dc4dc2b0be07b4b267/src/heap/remembered-set.h [modify] https://crrev.com/60cb6013d40c4c202b9389dc4dc2b0be07b4b267/src/heap/slot-set.h [modify] https://crrev.com/60cb6013d40c4c202b9389dc4dc2b0be07b4b267/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/a007dfc18e95a79cba33cd2e850ddf650853752d commit a007dfc18e95a79cba33cd2e850ddf650853752d Author: hpayer <hpayer@chromium.org> Date: Fri Oct 21 09:04:50 2016 [heap] Move typed slot filtering logic into sweeper. Additionally, remove all code related to the old-style slots filtering and black area end markers. BUG= chromium:648568 Review-Url: https://chromiumcodereview.appspot.com/2440683002 Cr-Commit-Position: refs/heads/master@{#40494} [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/BUILD.gn [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/src/heap/incremental-marking.cc [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/src/heap/mark-compact.cc [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/src/heap/mark-compact.h [delete] https://crrev.com/1b08c7a777d613ee433886749c94c86fce9d20b2/src/heap/remembered-set.cc [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/src/heap/slot-set.h [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/src/heap/spaces.cc [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/src/heap/spaces.h [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/src/v8.gyp [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/test/cctest/heap/test-heap.cc [modify] https://crrev.com/a007dfc18e95a79cba33cd2e850ddf650853752d/test/unittests/heap/slot-set-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/50a5853f0de1b23f2b41f07d4856397c838ecbd0 commit 50a5853f0de1b23f2b41f07d4856397c838ecbd0 Author: hpayer <hpayer@chromium.org> Date: Fri Oct 28 10:40:04 2016 [heap] Concurrent store buffer processing. BUG=chromium:648973, chromium:648568 Review-Url: https://codereview.chromium.org/2453673003 Cr-Commit-Position: refs/heads/master@{#40642} [modify] https://crrev.com/50a5853f0de1b23f2b41f07d4856397c838ecbd0/src/heap/heap.cc [modify] https://crrev.com/50a5853f0de1b23f2b41f07d4856397c838ecbd0/src/heap/store-buffer.cc [modify] https://crrev.com/50a5853f0de1b23f2b41f07d4856397c838ecbd0/src/heap/store-buffer.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d800644c0f514f8ae087282fd20acdb84d7eee9a commit d800644c0f514f8ae087282fd20acdb84d7eee9a Author: machenbach <machenbach@chromium.org> Date: Fri Oct 28 16:45:27 2016 Revert of [heap] Concurrent store buffer processing. (patchset #13 id:260001 of https://codereview.chromium.org/2453673003/ ) Reason for revert: Seems to block rolling: https://codereview.chromium.org/2447393005/ Original issue's description: > [heap] Concurrent store buffer processing. > > BUG=chromium:648973, chromium:648568 TBR=ulan@chromium.org,mlippautz@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG=chromium:648973, chromium:648568 Review-Url: https://codereview.chromium.org/2449853010 Cr-Commit-Position: refs/heads/master@{#40650} [modify] https://crrev.com/d800644c0f514f8ae087282fd20acdb84d7eee9a/src/heap/heap.cc [modify] https://crrev.com/d800644c0f514f8ae087282fd20acdb84d7eee9a/src/heap/store-buffer.cc [modify] https://crrev.com/d800644c0f514f8ae087282fd20acdb84d7eee9a/src/heap/store-buffer.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ef876f59b905ce270994617aeb78dea476f35cf6 commit ef876f59b905ce270994617aeb78dea476f35cf6 Author: Hannes Payer <hpayer@chromium.org> Date: Fri Nov 04 10:58:49 2016 Merged: [heap] Do not touch pre-freed typed slot set memory anymore. Revision: 84b81f8c868a6ea0ade12be0b38798db49853733 BUG= chromium:648568 , chromium:660595 LOG=N NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true R=ulan@chromium.org Review URL: https://codereview.chromium.org/2477903003 . Cr-Commit-Position: refs/branch-heads/5.5@{#34} Cr-Branched-From: 3cbd5838bd8376103daa45d69dade929ee4e0092-refs/heads/5.5.372@{#1} Cr-Branched-From: b3c8b0ce2c9af0528837d8309625118d4096553b-refs/heads/master@{#40015} [modify] https://crrev.com/ef876f59b905ce270994617aeb78dea476f35cf6/src/heap/slot-set.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/a9e6bbba263c98090f96bb0dccff09d8ffb86c0a commit a9e6bbba263c98090f96bb0dccff09d8ffb86c0a Author: hpayer <hpayer@chromium.org> Date: Fri Nov 11 14:00:55 2016 [heap] Reland concurrent store buffer processing. BUG=chromium:648973, chromium:648568 Review-Url: https://codereview.chromium.org/2493083003 Cr-Commit-Position: refs/heads/master@{#40928} [modify] https://crrev.com/a9e6bbba263c98090f96bb0dccff09d8ffb86c0a/src/heap/heap.cc [modify] https://crrev.com/a9e6bbba263c98090f96bb0dccff09d8ffb86c0a/src/heap/store-buffer.cc [modify] https://crrev.com/a9e6bbba263c98090f96bb0dccff09d8ffb86c0a/src/heap/store-buffer.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/c63c34e12e60ac0a19e1338b647882ac61d08741 commit c63c34e12e60ac0a19e1338b647882ac61d08741 Author: hpayer <hpayer@chromium.org> Date: Thu Nov 24 13:29:42 2016 Store buffer is used for writes that are coming from the mutator. Writes coming from the GC are directly added to the remembered set. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2528563003 Cr-Commit-Position: refs/heads/master@{#41263} [modify] https://crrev.com/c63c34e12e60ac0a19e1338b647882ac61d08741/src/heap/heap-inl.h [modify] https://crrev.com/c63c34e12e60ac0a19e1338b647882ac61d08741/src/heap/heap.cc [modify] https://crrev.com/c63c34e12e60ac0a19e1338b647882ac61d08741/src/heap/store-buffer.cc [modify] https://crrev.com/c63c34e12e60ac0a19e1338b647882ac61d08741/src/heap/store-buffer.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/061c2ab23a1d4cd192b935e7912e7dfb1fed845d commit 061c2ab23a1d4cd192b935e7912e7dfb1fed845d Author: machenbach <machenbach@chromium.org> Date: Thu Nov 24 13:49:53 2016 Revert of [heap] Use store buffer for writes coming from mutator. (patchset #6 id:100001 of https://codereview.chromium.org/2528563003/ ) Reason for revert: tsan problems: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/12860 Original issue's description: > Store buffer is used for writes that are coming from the mutator. Writes coming from the GC are directly added to the remembered set. > > BUG= chromium:648568 > > Committed: https://crrev.com/c63c34e12e60ac0a19e1338b647882ac61d08741 > Cr-Commit-Position: refs/heads/master@{#41263} TBR=ulan@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2528943002 Cr-Commit-Position: refs/heads/master@{#41265} [modify] https://crrev.com/061c2ab23a1d4cd192b935e7912e7dfb1fed845d/src/heap/heap-inl.h [modify] https://crrev.com/061c2ab23a1d4cd192b935e7912e7dfb1fed845d/src/heap/heap.cc [modify] https://crrev.com/061c2ab23a1d4cd192b935e7912e7dfb1fed845d/src/heap/store-buffer.cc [modify] https://crrev.com/061c2ab23a1d4cd192b935e7912e7dfb1fed845d/src/heap/store-buffer.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/385e8066463701cb614ed4f0582da96cb482da77 commit 385e8066463701cb614ed4f0582da96cb482da77 Author: hpayer <hpayer@chromium.org> Date: Mon Nov 28 20:21:38 2016 Use NoBarrier getters and setters for FixedArray. BUG= chromium:648568 Review-Url: https://codereview.chromium.org/2537533002 Cr-Commit-Position: refs/heads/master@{#41328} [modify] https://crrev.com/385e8066463701cb614ed4f0582da96cb482da77/src/heap/spaces.h [modify] https://crrev.com/385e8066463701cb614ed4f0582da96cb482da77/src/objects-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/fa2fdf275197185d9bca9d5e72c16a60722c3893 commit fa2fdf275197185d9bca9d5e72c16a60722c3893 Author: hpayer <hpayer@chromium.org> Date: Tue Nov 29 09:32:15 2016 [heap] Reland: Use store buffer for writes coming from mutator. This reverts commit 061c2ab23a1d4cd192b935e7912e7dfb1fed845d. BUG= chromium:648568 , chromium:669270 Review-Url: https://codereview.chromium.org/2529293004 Cr-Commit-Position: refs/heads/master@{#41341} [modify] https://crrev.com/fa2fdf275197185d9bca9d5e72c16a60722c3893/src/heap/heap-inl.h [modify] https://crrev.com/fa2fdf275197185d9bca9d5e72c16a60722c3893/src/heap/heap.cc [modify] https://crrev.com/fa2fdf275197185d9bca9d5e72c16a60722c3893/src/heap/store-buffer.cc [modify] https://crrev.com/fa2fdf275197185d9bca9d5e72c16a60722c3893/src/heap/store-buffer.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/810fcb2866d265266b24515ff2d9348425c63aef commit 810fcb2866d265266b24515ff2d9348425c63aef Author: machenbach <machenbach@chromium.org> Date: Tue Nov 29 10:02:22 2016 Revert of [heap] Reland: Use store buffer for writes coming from mutator. (patchset #1 id:1 of https://codereview.chromium.org/2529293004/ ) Reason for revert: Suspect for tsan failures: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20TSAN/builds/12915 Original issue's description: > [heap] Reland: Use store buffer for writes coming from mutator. > > This reverts commit 061c2ab23a1d4cd192b935e7912e7dfb1fed845d. > > BUG= chromium:648568 , chromium:669270 > > Committed: https://crrev.com/fa2fdf275197185d9bca9d5e72c16a60722c3893 > Cr-Commit-Position: refs/heads/master@{#41341} TBR=mlippautz@chromium.org,hpayer@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= chromium:648568 , chromium:669270 Review-Url: https://codereview.chromium.org/2534803004 Cr-Commit-Position: refs/heads/master@{#41342} [modify] https://crrev.com/810fcb2866d265266b24515ff2d9348425c63aef/src/heap/heap-inl.h [modify] https://crrev.com/810fcb2866d265266b24515ff2d9348425c63aef/src/heap/heap.cc [modify] https://crrev.com/810fcb2866d265266b24515ff2d9348425c63aef/src/heap/store-buffer.cc [modify] https://crrev.com/810fcb2866d265266b24515ff2d9348425c63aef/src/heap/store-buffer.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f3d119b9c5bb39ba994a6e437bfdacff9a6ff8fc commit f3d119b9c5bb39ba994a6e437bfdacff9a6ff8fc Author: hpayer <hpayer@chromium.org> Date: Tue Nov 29 11:55:49 2016 [heap] Reland: Use store buffer for writes coming from mutator. This reverts commit 810fcb2866d265266b24515ff2d9348425c63aef. BUG= chromium:648568 , chromium:669270 Review-Url: https://codereview.chromium.org/2530383003 Cr-Commit-Position: refs/heads/master@{#41350} [modify] https://crrev.com/f3d119b9c5bb39ba994a6e437bfdacff9a6ff8fc/src/heap/heap-inl.h [modify] https://crrev.com/f3d119b9c5bb39ba994a6e437bfdacff9a6ff8fc/src/heap/heap.cc [modify] https://crrev.com/f3d119b9c5bb39ba994a6e437bfdacff9a6ff8fc/src/heap/store-buffer.cc [modify] https://crrev.com/f3d119b9c5bb39ba994a6e437bfdacff9a6ff8fc/src/heap/store-buffer.h [modify] https://crrev.com/f3d119b9c5bb39ba994a6e437bfdacff9a6ff8fc/src/objects-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/0830b15b734c87dbb7d407a0d4ba383bba4e2a31 commit 0830b15b734c87dbb7d407a0d4ba383bba4e2a31 Author: Hannes Payer <hpayer@chromium.org> Date: Thu Dec 08 11:08:49 2016 Merged: [heap] Reland: Use store buffer for writes coming from mutator. Revision: f3d119b9c5bb39ba994a6e437bfdacff9a6ff8fc BUG= chromium:648568 , chromium:669270 ,chromium:668475 LOG=N NOTRY=true NOPRESUBMIT=true NOTREECHECKS=true R=hablich@chromium.org Review URL: https://codereview.chromium.org/2562683002 . Cr-Commit-Position: refs/branch-heads/5.6@{#47} Cr-Branched-From: bdd3886218dfe76e8560eb8a18401942452ae859-refs/heads/5.6.326@{#1} Cr-Branched-From: 879f6599eee6e1dfcbe9a24bf688b261c03e9558-refs/heads/master@{#41014} [modify] https://crrev.com/0830b15b734c87dbb7d407a0d4ba383bba4e2a31/src/heap/heap-inl.h [modify] https://crrev.com/0830b15b734c87dbb7d407a0d4ba383bba4e2a31/src/heap/heap.cc [modify] https://crrev.com/0830b15b734c87dbb7d407a0d4ba383bba4e2a31/src/heap/store-buffer.cc [modify] https://crrev.com/0830b15b734c87dbb7d407a0d4ba383bba4e2a31/src/heap/store-buffer.h [modify] https://crrev.com/0830b15b734c87dbb7d407a0d4ba383bba4e2a31/src/objects-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/9c191a0cda081250d40586e3dbccf9209727d233 commit 9c191a0cda081250d40586e3dbccf9209727d233 Author: hpayer <hpayer@chromium.org> Date: Thu Dec 08 14:18:54 2016 [heap] Use callbacks to dispatch store buffer operations. BUG= chromium:648568 , chromium:669920 Review-Url: https://codereview.chromium.org/2548213004 Cr-Commit-Position: refs/heads/master@{#41592} [modify] https://crrev.com/9c191a0cda081250d40586e3dbccf9209727d233/src/heap/heap.cc [modify] https://crrev.com/9c191a0cda081250d40586e3dbccf9209727d233/src/heap/heap.h [modify] https://crrev.com/9c191a0cda081250d40586e3dbccf9209727d233/src/heap/store-buffer.cc [modify] https://crrev.com/9c191a0cda081250d40586e3dbccf9209727d233/src/heap/store-buffer.h
Comment 1 by bugdroid1@chromium.org
, Sep 21 2016