Reduce Black Allocation Memory Overhead
[heap] Reland "Remove black pages and use black areas instead." BUG=630969, 630386 LOG=n Committed: https://crrev.com/9e37a07c8de0a20ef2681e26824ff4d329102603 Cr-Commit-Position: refs/heads/master@{#38057}
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/2c7efba658e6f48e115c7ff17d1d1053e5825e06 commit 2c7efba658e6f48e115c7ff17d1d1053e5825e06 Author: hpayer <hpayer@chromium.org> Date: Thu Jul 28 10:29:09 2016 Revert of [heap] Reland "Remove black pages and use black areas instead." (patchset #4 id:60001 of https://codereview.chromium.org/2185613002/ ) Reason for revert: Still crashing. Original issue's description: > [heap] Reland "Remove black pages and use black areas instead." > > BUG=chromium:630969, chromium:630386 > LOG=n > > Committed: https://crrev.com/9e37a07c8de0a20ef2681e26824ff4d329102603 > Cr-Commit-Position: refs/heads/master@{#38057} TBR=ulan@chromium.org # Not skipping CQ checks because original CL landed more than 1 days ago. BUG=chromium:630969, chromium:630386 Review-Url: https://codereview.chromium.org/2183383004 Cr-Commit-Position: refs/heads/master@{#38129} [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/heap-inl.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/heap.cc [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/incremental-marking.cc [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/incremental-marking.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/mark-compact-inl.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/mark-compact.cc [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/mark-compact.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/marking.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/scavenger.cc [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/spaces-inl.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/spaces.cc [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/heap/spaces.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/ia32/assembler-ia32-inl.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/src/objects-inl.h [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/test/cctest/heap/test-heap.cc [modify] https://crrev.com/2c7efba658e6f48e115c7ff17d1d1053e5825e06/test/unittests/heap/marking-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/9429ec9cdd682db80914001eb65ed94c1a2c5cf0 commit 9429ec9cdd682db80914001eb65ed94c1a2c5cf0 Author: zhengxing.li <zhengxing.li@intel.com> Date: Fri Jul 29 02:37:16 2016 X87: Revert of [heap] Reland "Remove black pages and use black areas instead." (patchset #4 id:60001 of https://codereview.chromium.org/2185613002/ ). port 2c7efba658e6f48e115c7ff17d1d1053e5825e06 (r38129) original commit message: Reason for revert: Still crashing. Original issue's description: > [heap] Reland "Remove black pages and use black areas instead." > > BUG=chromium:630969, chromium:630386 > LOG=n > > Committed: https://crrev.com/9e37a07c8de0a20ef2681e26824ff4d329102603 > Cr-Commit-Position: refs/heads/master@{#38057} BUG= Review-Url: https://codereview.chromium.org/2192113002 Cr-Commit-Position: refs/heads/master@{#38152} [modify] https://crrev.com/9429ec9cdd682db80914001eb65ed94c1a2c5cf0/src/x87/assembler-x87-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/205457b1aa3811021f603f8a4201b5363507841d commit 205457b1aa3811021f603f8a4201b5363507841d Author: hpayer <hpayer@chromium.org> Date: Mon Aug 01 09:03:01 2016 [heap] Reland "Remove black pages and use black areas instead." BUG=chromium:630969, chromium:630386 Review-Url: https://codereview.chromium.org/2186863005 Cr-Commit-Position: refs/heads/master@{#38195} [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/heap-inl.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/heap.cc [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/incremental-marking.cc [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/incremental-marking.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/mark-compact-inl.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/mark-compact.cc [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/mark-compact.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/marking.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/scavenger.cc [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/spaces-inl.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/spaces.cc [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/heap/spaces.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/ia32/assembler-ia32-inl.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/src/objects-inl.h [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/test/cctest/heap/test-heap.cc [modify] https://crrev.com/205457b1aa3811021f603f8a4201b5363507841d/test/unittests/heap/marking-unittest.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/2c75cfd731e11daa649faf2e91cbb84767b11f8e commit 2c75cfd731e11daa649faf2e91cbb84767b11f8e Author: hpayer <hpayer@chromium.org> Date: Tue Aug 02 11:56:23 2016 [heap] Re-enable black allocation when finalizing marking. BUG= chromium:630386 LOG=n Review-Url: https://codereview.chromium.org/2202993002 Cr-Commit-Position: refs/heads/master@{#38240} [modify] https://crrev.com/2c75cfd731e11daa649faf2e91cbb84767b11f8e/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/682c4e448e97e9106ab00d3a5c8297e358016915 commit 682c4e448e97e9106ab00d3a5c8297e358016915 Author: hpayer <hpayer@chromium.org> Date: Tue Aug 02 12:26:56 2016 Revert of [heap] Re-enable black allocation when finalizing marking. (patchset #1 id:1 of https://codereview.chromium.org/2202993002/ ) Reason for revert: Crashes on tree. Original issue's description: > [heap] Re-enable black allocation when finalizing marking. > > BUG= chromium:630386 > LOG=n > > Committed: https://crrev.com/2c75cfd731e11daa649faf2e91cbb84767b11f8e > Cr-Commit-Position: refs/heads/master@{#38240} TBR=ulan@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2204593005 Cr-Commit-Position: refs/heads/master@{#38243} [modify] https://crrev.com/682c4e448e97e9106ab00d3a5c8297e358016915/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/33fab42ed3a708e97aa50584c14a0ca42402299d commit 33fab42ed3a708e97aa50584c14a0ca42402299d Author: hpayer <hpayer@chromium.org> Date: Wed Aug 03 14:29:04 2016 [heap] Jump over one word fillers in LiveObjectIterator BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2210493002 Cr-Commit-Position: refs/heads/master@{#38298} [modify] https://crrev.com/33fab42ed3a708e97aa50584c14a0ca42402299d/src/heap/mark-compact-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/bb4e028648a27a6958afc9b5040366b899cda50d commit bb4e028648a27a6958afc9b5040366b899cda50d Author: hpayer <hpayer@chromium.org> Date: Tue Aug 09 12:06:21 2016 [heap] Enable black allocation when finalizing incremental marking. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2224153003 Cr-Commit-Position: refs/heads/master@{#38487} [modify] https://crrev.com/bb4e028648a27a6958afc9b5040366b899cda50d/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d45f84523768d8e2075e45c830a2304d88c4d957 commit d45f84523768d8e2075e45c830a2304d88c4d957 Author: hpayer <hpayer@chromium.org> Date: Tue Aug 09 12:58:26 2016 Revert of [heap] Enable black allocation when finalizing incremental marking. (patchset #1 id:1 of https://codereview.chromium.org/2224153003/ ) Reason for revert: crashing on ToT Original issue's description: > [heap] Enable black allocation when finalizing incremental marking. > > BUG= chromium:630386 > > Committed: https://crrev.com/bb4e028648a27a6958afc9b5040366b899cda50d > Cr-Commit-Position: refs/heads/master@{#38487} TBR=mlippautz@chromium.org # Skipping CQ checks because original CL landed less than 1 days ago. NOPRESUBMIT=true NOTREECHECKS=true NOTRY=true BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2223423003 Cr-Commit-Position: refs/heads/master@{#38490} [modify] https://crrev.com/d45f84523768d8e2075e45c830a2304d88c4d957/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/7ad2de17033dac77ec9f7e67eafc83e2f9d41b44 commit 7ad2de17033dac77ec9f7e67eafc83e2f9d41b44 Author: hpayer <hpayer@chromium.org> Date: Thu Aug 11 13:34:17 2016 [heap] Register end of black areas to support faster filtering of invalid slots. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2236543002 Cr-Commit-Position: refs/heads/master@{#38581} [modify] https://crrev.com/7ad2de17033dac77ec9f7e67eafc83e2f9d41b44/src/heap/mark-compact.cc [modify] https://crrev.com/7ad2de17033dac77ec9f7e67eafc83e2f9d41b44/src/heap/spaces.cc [modify] https://crrev.com/7ad2de17033dac77ec9f7e67eafc83e2f9d41b44/src/heap/spaces.h [modify] https://crrev.com/7ad2de17033dac77ec9f7e67eafc83e2f9d41b44/test/cctest/heap/test-heap.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/22b931f882be2bf68faad4b240d7ed0126ffa4e4 commit 22b931f882be2bf68faad4b240d7ed0126ffa4e4 Author: hpayer <hpayer@chromium.org> Date: Fri Aug 12 11:08:00 2016 [heap] Also mark map when iterating black objects. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2240123002 Cr-Commit-Position: refs/heads/master@{#38609} [modify] https://crrev.com/22b931f882be2bf68faad4b240d7ed0126ffa4e4/src/heap/incremental-marking.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b82361cb63f83dc355c856f26189544ceee115ca commit b82361cb63f83dc355c856f26189544ceee115ca Author: hpayer <hpayer@chromium.org> Date: Thu Aug 18 10:00:39 2016 [heap] Use Page::FromAllocationAreaAddress when dealing with allocation info. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2247303005 Cr-Commit-Position: refs/heads/master@{#38706} [modify] https://crrev.com/b82361cb63f83dc355c856f26189544ceee115ca/src/heap/spaces.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ff010282b755e878e898061eb5f79d4f19938a37 commit ff010282b755e878e898061eb5f79d4f19938a37 Author: hpayer <hpayer@chromium.org> Date: Fri Aug 19 08:12:28 2016 [heap] Don't clear black areas when deserializing, they will be marked black later anyway. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2264493002 Cr-Commit-Position: refs/heads/master@{#38737} [modify] https://crrev.com/ff010282b755e878e898061eb5f79d4f19938a37/src/heap/heap.cc [modify] https://crrev.com/ff010282b755e878e898061eb5f79d4f19938a37/src/heap/heap.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/870763f5ced4ea97bbf6604dd0347f2cffe04e1c commit 870763f5ced4ea97bbf6604dd0347f2cffe04e1c Author: hpayer <hpayer@chromium.org> Date: Fri Aug 19 12:27:21 2016 [heap] Don't clear black areas in Heap::AllocateFillerObject. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2258083002 Cr-Commit-Position: refs/heads/master@{#38750} [modify] https://crrev.com/870763f5ced4ea97bbf6604dd0347f2cffe04e1c/src/heap/heap.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/047977c53d3168d3a6354027c966db3bf65b0af3 commit 047977c53d3168d3a6354027c966db3bf65b0af3 Author: hpayer <hpayer@chromium.org> Date: Tue Sep 13 12:06:10 2016 [heap] Abort black allocation when aborting incremental marking. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2337943002 Cr-Commit-Position: refs/heads/master@{#39380} [modify] https://crrev.com/047977c53d3168d3a6354027c966db3bf65b0af3/src/heap/incremental-marking.cc [modify] https://crrev.com/047977c53d3168d3a6354027c966db3bf65b0af3/src/heap/incremental-marking.h [modify] https://crrev.com/047977c53d3168d3a6354027c966db3bf65b0af3/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/1ccc742dc326b063999670421e1da0ea124874c0 commit 1ccc742dc326b063999670421e1da0ea124874c0 Author: hpayer <hpayer@chromium.org> Date: Tue Sep 13 12:37:51 2016 [heap] Enable black allocation when finalizing incremental marking. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2239733002 Cr-Commit-Position: refs/heads/master@{#39382} [modify] https://crrev.com/1ccc742dc326b063999670421e1da0ea124874c0/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f85af183e41a7a58ccf7419b985d9247f1c18c04 commit f85af183e41a7a58ccf7419b985d9247f1c18c04 Author: hablich <hablich@chromium.org> Date: Wed Sep 14 02:36:16 2016 Revert of [heap] Enable black allocation when finalizing incremental marking. (patchset #6 id:100001 of https://codereview.chromium.org/2239733002/ ) Reason for revert: Suspecting this is a roll blocker: https://codereview.chromium.org/2332343002/ # # Fatal error in ../../v8/src/heap/spaces.h, line 1618 # Check failed: capacity_ >= bytes (25429824 vs. 18446744073709551168). # Original issue's description: > [heap] Enable black allocation when finalizing incremental marking. > > BUG= chromium:630386 > > Committed: https://crrev.com/1ccc742dc326b063999670421e1da0ea124874c0 > Cr-Commit-Position: refs/heads/master@{#39382} 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:630386 Review-Url: https://codereview.chromium.org/2340463005 Cr-Commit-Position: refs/heads/master@{#39397} [modify] https://crrev.com/f85af183e41a7a58ccf7419b985d9247f1c18c04/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/a98d971412a5c32967bbef4b77b9d2658055ff1c commit a98d971412a5c32967bbef4b77b9d2658055ff1c Author: hpayer <hpayer@chromium.org> Date: Mon Dec 12 19:53:26 2016 [heap] Enable black allocation when finalizing marking. BUG= chromium:630386 Review-Url: https://codereview.chromium.org/2440943002 Cr-Commit-Position: refs/heads/master@{#41655} [modify] https://crrev.com/a98d971412a5c32967bbef4b77b9d2658055ff1c/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/cd23d6771a04057d19dc326e73bef72abd318a34 commit cd23d6771a04057d19dc326e73bef72abd318a34 Author: machenbach <machenbach@chromium.org> Date: Tue Dec 13 09:40:03 2016 Revert of [heap] Enable black allocation when finalizing marking. (patchset #3 id:40001 of https://codereview.chromium.org/2440943002/ ) Reason for revert: Seems to block roll: https://codereview.chromium.org/2569133002/ Original issue's description: > [heap] Enable black allocation when finalizing marking. > > BUG= chromium:630386 > > Committed: https://crrev.com/a98d971412a5c32967bbef4b77b9d2658055ff1c > Cr-Commit-Position: refs/heads/master@{#41655} 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:630386 Review-Url: https://codereview.chromium.org/2567353002 Cr-Commit-Position: refs/heads/master@{#41665} [modify] https://crrev.com/cd23d6771a04057d19dc326e73bef72abd318a34/src/flag-definitions.h
Comment 1 by hpayer@chromium.org
, Jul 26 2016