Implement write protected code pages
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/d88e3a7a9f635642b9d96e0ce2871da4ae775fd7 commit d88e3a7a9f635642b9d96e0ce2871da4ae775fd7 Author: Michael Lippautz <mlippautz@chromium.org> Date: Mon Oct 16 15:27:09 2017 [heap] Pause Sweeper tasks on Scavenge Pause sweeper tasks when entering the Scavenger. In future CLs this enables removing the page lock for the Scavenger. 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: v8:6923 , chromium:774108 Change-Id: Idcb7e14b94704dead70c33a49e67047b88bb6c4c Reviewed-on: https://chromium-review.googlesource.com/718200 Commit-Queue: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48603} [modify] https://crrev.com/d88e3a7a9f635642b9d96e0ce2871da4ae775fd7/src/heap/heap.cc [modify] https://crrev.com/d88e3a7a9f635642b9d96e0ce2871da4ae775fd7/src/heap/mark-compact.cc [modify] https://crrev.com/d88e3a7a9f635642b9d96e0ce2871da4ae775fd7/src/heap/mark-compact.h [modify] https://crrev.com/d88e3a7a9f635642b9d96e0ce2871da4ae775fd7/test/cctest/heap/test-page-promotion.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/14917b6531596d33590edb109ec14f6ca9b95536 commit 14917b6531596d33590edb109ec14f6ca9b95536 Author: Hannes Payer <hpayer@chromium.org> Date: Fri Oct 20 08:12:29 2017 [heap] Implemented write protected code pages. This CL provides the basic infrastructure on the GC side for write protected code pages. The only thing missing on the GC side is the out-of-line free list implementation. In this CL sweeper threads and the mutator need to synchronize when page protection mode changes. This would not be necessary if the sweepr use and out-of-line free list. Code allocation is currently protected by a CodeSpaceMemoryModificationScope. This may go away with a unification of code space allocation and initialization that will happen later. One thing missing in this CL: freshly added pages are still read+write+executable. This also needs to change: WIP Bug: chromium:774108 ,v8:6792 Cq-Include-Trybots: master.tryserver.chromium.linux:linux_chromium_rel_ng Change-Id: Ib8d1ed1c09cc144791e462277bf43a4641e1490d Reviewed-on: https://chromium-review.googlesource.com/716379 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#48774} [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/api.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/arm/codegen-arm.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/base/platform/platform-posix.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/base/platform/platform-win32.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/base/platform/platform.h [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/factory.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/flag-definitions.h [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/heap/heap-inl.h [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/heap/heap.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/heap/heap.h [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/heap/mark-compact.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/heap/spaces.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/heap/spaces.h [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/ia32/codegen-ia32.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/mips/codegen-mips.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/mips64/codegen-mips64.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/ppc/codegen-ppc.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/s390/codegen-s390.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/snapshot/snapshot-common.cc [modify] https://crrev.com/14917b6531596d33590edb109ec14f6ca9b95536/src/x64/codegen-x64.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/11d3178bb309e1390e919fb9f9dea529cbd20db3 commit 11d3178bb309e1390e919fb9f9dea529cbd20db3 Author: Hannes Payer <hpayer@chromium.org> Date: Thu Oct 26 11:53:41 2017 [heap] Move write rx->rw->rx transition in Scavenger to parallel jobs. Bug: chromium:774108 ,v8:6792 Change-Id: I1bb1e47ebf16e55e63ed4bbd9ce9eb0c01e8b754 Reviewed-on: https://chromium-review.googlesource.com/735440 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#48965} [modify] https://crrev.com/11d3178bb309e1390e919fb9f9dea529cbd20db3/src/heap/heap-inl.h [modify] https://crrev.com/11d3178bb309e1390e919fb9f9dea529cbd20db3/src/heap/heap.cc [modify] https://crrev.com/11d3178bb309e1390e919fb9f9dea529cbd20db3/src/heap/heap.h [modify] https://crrev.com/11d3178bb309e1390e919fb9f9dea529cbd20db3/src/heap/scavenger.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/668b1e68434a31ade1f8c552a7ab4947ee1537f3 commit 668b1e68434a31ade1f8c552a7ab4947ee1537f3 Author: Hannes Payer <hpayer@chromium.org> Date: Thu Oct 26 12:05:06 2017 [deoptimizer] Make deoptimizer entry code memory rx. Bug: chromium:774108 ,v8:6792 Change-Id: If91b709779912c37b88f3c57e46f7910b59cc240 Reviewed-on: https://chromium-review.googlesource.com/737870 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#48967} [modify] https://crrev.com/668b1e68434a31ade1f8c552a7ab4947ee1537f3/src/deoptimizer.cc [modify] https://crrev.com/668b1e68434a31ade1f8c552a7ab4947ee1537f3/src/heap/spaces.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/bfd4df03442008ddc5802278c23d13d09e0f6bb5 commit bfd4df03442008ddc5802278c23d13d09e0f6bb5 Author: Hannes Payer <hpayer@chromium.org> Date: Thu Oct 26 13:12:18 2017 [heap] Increase scope of CodeSpaceMemoryModificationScope to incorporate all code space writes. Bug: chromium:774108 ,v8:6792 Change-Id: I7a458991921b5241c11db8999be433f4b33ce639 Reviewed-on: https://chromium-review.googlesource.com/738144 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48970} [modify] https://crrev.com/bfd4df03442008ddc5802278c23d13d09e0f6bb5/src/heap/heap.cc [modify] https://crrev.com/bfd4df03442008ddc5802278c23d13d09e0f6bb5/src/heap/mark-compact.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/872accb4df024657a231e20fc80d754715e2bff0 commit 872accb4df024657a231e20fc80d754715e2bff0 Author: Hannes Payer <hpayer@chromium.org> Date: Thu Oct 26 13:52:26 2017 [heap] Fix DCHECK in SetReadAndWritable to allow non-space MemoryChunks. Bug: chromium:774108 ,v8:6792 Change-Id: I2bf361cab6da5e57302fb83d384b5f7e8e847c9a Reviewed-on: https://chromium-review.googlesource.com/738145 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48972} [modify] https://crrev.com/872accb4df024657a231e20fc80d754715e2bff0/src/heap/spaces.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/ba06ceacb934fb49641940b22edc1b1bbde6cf3d commit ba06ceacb934fb49641940b22edc1b1bbde6cf3d Author: Hannes Payer <hpayer@chromium.org> Date: Thu Oct 26 14:35:36 2017 [heap] Fix DCHECK in CodePageMemoryModificationScope to allow non-space MemoryChunks. Bug: chromium:774108 ,v8:6792 Change-Id: Ia312b8c6ca8608f8ac96e8caefd061900b40079b Reviewed-on: https://chromium-review.googlesource.com/739481 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#48976} [modify] https://crrev.com/ba06ceacb934fb49641940b22edc1b1bbde6cf3d/src/heap/heap-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16 commit 34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16 Author: Hannes Payer <hpayer@chromium.org> Date: Mon Nov 06 14:59:26 2017 [heap] Sweeper sets code memory to rwx to allow concurrent sweeping while executing code. Bug: chromium:774108 ,v8:6792 Change-Id: Ibdb00bee4dc563663ef2151b489600a2b100f146 Reviewed-on: https://chromium-review.googlesource.com/739601 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#49143} [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/base/platform/platform-posix.cc [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/base/platform/platform-win32.cc [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/base/platform/platform.h [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/deoptimizer.cc [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/heap/heap-inl.h [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/heap/heap.h [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/heap/mark-compact.cc [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/heap/scavenger.cc [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/heap/spaces.cc [modify] https://crrev.com/34d3fbaaa3701e4764d2e68298cc2d2a4f6a5a16/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/2e51265f29914f7c85890d4388408fd3e04c6be9 commit 2e51265f29914f7c85890d4388408fd3e04c6be9 Author: Hannes Payer <hpayer@chromium.org> Date: Tue Nov 07 12:58:20 2017 [heap] CodeSpaceMemoryModificationScope also handles large pages. Bug: chromium:774108 ,v8:6792 Change-Id: I09ec58f7fdc17f1cc50d9445f8b473e17a584dc1 Reviewed-on: https://chromium-review.googlesource.com/756843 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49185} [modify] https://crrev.com/2e51265f29914f7c85890d4388408fd3e04c6be9/src/heap/heap-inl.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/96ffe9288a5451812dbb488b394ccde6f19546fd commit 96ffe9288a5451812dbb488b394ccde6f19546fd Author: Hannes Payer <hpayer@chromium.org> Date: Wed Nov 08 11:52:34 2017 [heap] Use area_size() when changing the memory protection mode of the allocation area in a MemoryChunk. Bug: chromium:774108 ,v8:6792 Change-Id: I6cd280c2c6f159719bea523d1bcf11c290e594f6 Reviewed-on: https://chromium-review.googlesource.com/758359 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49218} [modify] https://crrev.com/96ffe9288a5451812dbb488b394ccde6f19546fd/src/heap/spaces.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f139f17e59b2fcdf8496e95058d68f7879b2c502 commit f139f17e59b2fcdf8496e95058d68f7879b2c502 Author: Michael Starzinger <mstarzinger@chromium.org> Date: Thu Nov 16 11:15:53 2017 Stage write-protected code behind the --future flag. R=hablich@chromium.org BUG=v8:6792, chromium:774108 Change-Id: I6bb376ea5d1c72f668398fb75f8b2bbea5fdff20 Reviewed-on: https://chromium-review.googlesource.com/771551 Reviewed-by: Michael Hablich <hablich@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#49404} [modify] https://crrev.com/f139f17e59b2fcdf8496e95058d68f7879b2c502/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6c431dde20611b2c6fd104f5111231be9a77af2a commit 6c431dde20611b2c6fd104f5111231be9a77af2a Author: Hannes Payer <hpayer@chromium.org> Date: Thu Nov 16 12:34:48 2017 [heap] Always allocate executable MemoryChunks rw. This CL also narrows the rw scopes on various call sites. Bug: chromium:774108 ,v8:6792 Change-Id: I41a6f5dc4948833baaa441fb998ef40d8a832619 Reviewed-on: https://chromium-review.googlesource.com/758370 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Clemens Hammacher <clemensh@chromium.org> Reviewed-by: Yang Guo <yangguo@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49411} [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/allocation.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/allocation.h [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/base/platform/platform-cygwin.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/base/platform/platform-fuchsia.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/base/platform/platform-posix.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/base/platform/platform-win32.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/base/platform/platform.h [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/heap/spaces.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/heap/spaces.h [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/heap/store-buffer.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/isolate.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/snapshot/code-serializer.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/snapshot/object-deserializer.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/wasm/module-compiler.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/src/wasm/wasm-code-specialization.cc [modify] https://crrev.com/6c431dde20611b2c6fd104f5111231be9a77af2a/test/cctest/test-platform.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/09658ff7144d3821ca0e16b3ff869dcd87c87b96 commit 09658ff7144d3821ca0e16b3ff869dcd87c87b96 Author: Hannes Payer <hpayer@chromium.org> Date: Tue Nov 21 10:26:24 2017 [heap] Initialize the write_unprotect_counter_ of new code pages with the number of open CodeSpaceMemoryModificationScopes. Bug: chromium:774108 ,v8:6792 Change-Id: Ib5306075aeff61160762c685c343970ceb32b66a Reviewed-on: https://chromium-review.googlesource.com/779201 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#49521} [modify] https://crrev.com/09658ff7144d3821ca0e16b3ff869dcd87c87b96/src/heap/heap-inl.h [modify] https://crrev.com/09658ff7144d3821ca0e16b3ff869dcd87c87b96/src/heap/heap.cc [modify] https://crrev.com/09658ff7144d3821ca0e16b3ff869dcd87c87b96/src/heap/heap.h [modify] https://crrev.com/09658ff7144d3821ca0e16b3ff869dcd87c87b96/src/heap/spaces.cc [modify] https://crrev.com/09658ff7144d3821ca0e16b3ff869dcd87c87b96/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/cc0086532fa6a069148548dad98fe02c024f5ee7 commit cc0086532fa6a069148548dad98fe02c024f5ee7 Author: Michael Starzinger <mstarzinger@chromium.org> Date: Tue Nov 21 12:57:33 2017 [heap] Copy value of --write-protect-code-memory. This introduces {Heap::write_protect_code_memory} as a race-free copy of the underlying {FLAG_write_protect_code_memory} flag. Since this flag is checked from the parallel sweeper, subsequent flag implications might be racing against the read. This ensures race-free reads. R=hpayer@chromium.org BUG=v8:6792, chromium:774108 , v8:7106 Change-Id: I1a1073f11e91bebd60f8d5da440845452ec67c50 Reviewed-on: https://chromium-review.googlesource.com/781662 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#49535} [modify] https://crrev.com/cc0086532fa6a069148548dad98fe02c024f5ee7/src/heap/heap-inl.h [modify] https://crrev.com/cc0086532fa6a069148548dad98fe02c024f5ee7/src/heap/heap.cc [modify] https://crrev.com/cc0086532fa6a069148548dad98fe02c024f5ee7/src/heap/heap.h [modify] https://crrev.com/cc0086532fa6a069148548dad98fe02c024f5ee7/src/heap/spaces.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6e689c916293b3bed298783730773f5fae86f249 commit 6e689c916293b3bed298783730773f5fae86f249 Author: Hannes Payer <hpayer@chromium.org> Date: Thu Nov 23 12:19:51 2017 [heap] Incrementally sweep code pages to avoid rwx code page memory. 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:774108 ,v8:6792 Change-Id: Ie02287467ef4e47d00058327db7eaf6c97d2fda1 Reviewed-on: https://chromium-review.googlesource.com/782559 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#49606} [modify] https://crrev.com/6e689c916293b3bed298783730773f5fae86f249/src/heap/heap-inl.h [modify] https://crrev.com/6e689c916293b3bed298783730773f5fae86f249/src/heap/heap.cc [modify] https://crrev.com/6e689c916293b3bed298783730773f5fae86f249/src/heap/heap.h [modify] https://crrev.com/6e689c916293b3bed298783730773f5fae86f249/src/heap/mark-compact.cc [modify] https://crrev.com/6e689c916293b3bed298783730773f5fae86f249/src/heap/mark-compact.h [modify] https://crrev.com/6e689c916293b3bed298783730773f5fae86f249/src/heap/scavenger.cc [modify] https://crrev.com/6e689c916293b3bed298783730773f5fae86f249/src/heap/spaces.cc [modify] https://crrev.com/6e689c916293b3bed298783730773f5fae86f249/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/6ea63a122be3822c23a3337e85468fbd56290e2d commit 6ea63a122be3822c23a3337e85468fbd56290e2d Author: Michael Starzinger <mstarzinger@chromium.org> Date: Tue Nov 28 15:32:32 2017 [heap] Safety check for {CodePageMemoryModificationScope}. R=hpayer@chromium.org BUG=v8:6792, chromium:774108 Change-Id: I202993ddf5bb11d238ed173197657c6546dd4a37 Reviewed-on: https://chromium-review.googlesource.com/789865 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#49675} [modify] https://crrev.com/6ea63a122be3822c23a3337e85468fbd56290e2d/src/heap/heap.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e97daee2e5a57592631765fb9c3ca04a2dd9def4 commit e97daee2e5a57592631765fb9c3ca04a2dd9def4 Author: Hannes Payer <hpayer@chromium.org> Date: Tue Jan 16 09:56:03 2018 [heap] Register executable MemoryChunks. Bug: chromium:774108 ,v8:6792 Change-Id: If0ff62b959b74b7be4e00b04d7a734ab95b8ecb6 Reviewed-on: https://chromium-review.googlesource.com/867040 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50610} [modify] https://crrev.com/e97daee2e5a57592631765fb9c3ca04a2dd9def4/src/heap/heap-inl.h [modify] https://crrev.com/e97daee2e5a57592631765fb9c3ca04a2dd9def4/src/heap/spaces.cc [modify] https://crrev.com/e97daee2e5a57592631765fb9c3ca04a2dd9def4/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/594a1a0b6e551397cfdf50870f6230da34db2dc8 commit 594a1a0b6e551397cfdf50870f6230da34db2dc8 Author: Hannes Payer <hpayer@chromium.org> Date: Wed Jan 17 20:10:06 2018 Revert "[heap] Register executable MemoryChunks." This reverts commit e97daee2e5a57592631765fb9c3ca04a2dd9def4. Bug: chromium:803046, chromium:774108 ,v8:6792 Change-Id: I15ee3c109b22fa9fe9658c93bd73cb4454310df5 Reviewed-on: https://chromium-review.googlesource.com/870837 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#50664} [modify] https://crrev.com/594a1a0b6e551397cfdf50870f6230da34db2dc8/src/heap/heap-inl.h [modify] https://crrev.com/594a1a0b6e551397cfdf50870f6230da34db2dc8/src/heap/spaces.cc [modify] https://crrev.com/594a1a0b6e551397cfdf50870f6230da34db2dc8/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/8cd72a7182a99ef299e45a94ebade0b2f7f6dd5e commit 8cd72a7182a99ef299e45a94ebade0b2f7f6dd5e Author: Hannes Payer <hpayer@chromium.org> Date: Thu Jan 18 13:52:05 2018 [heap] Reland register executable MemoryChunks. Bug: chromium:774108 ,v8:6792 Change-Id: I4736b86ad5bd5e0777dc7a121023c4ed34d69fb0 Reviewed-on: https://chromium-review.googlesource.com/873170 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Cr-Commit-Position: refs/heads/master@{#50683} [modify] https://crrev.com/8cd72a7182a99ef299e45a94ebade0b2f7f6dd5e/src/heap/heap-inl.h [modify] https://crrev.com/8cd72a7182a99ef299e45a94ebade0b2f7f6dd5e/src/heap/heap.h [modify] https://crrev.com/8cd72a7182a99ef299e45a94ebade0b2f7f6dd5e/src/heap/spaces.cc [modify] https://crrev.com/8cd72a7182a99ef299e45a94ebade0b2f7f6dd5e/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/158e78014b64c42747d05634d6281c478a9fc095 commit 158e78014b64c42747d05634d6281c478a9fc095 Author: Hannes Payer <hpayer@chromium.org> Date: Thu Feb 01 21:52:56 2018 [heap] Remove heap dependency from FreeList and restructure surrounding code a bit. This is a preparation CL for OOL free-lists. Bug: chromium:774108 Change-Id: Ied7853d1d625f650ced135faec4b729d880961c3 Reviewed-on: https://chromium-review.googlesource.com/897809 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#51048} [modify] https://crrev.com/158e78014b64c42747d05634d6281c478a9fc095/src/heap/spaces.cc [modify] https://crrev.com/158e78014b64c42747d05634d6281c478a9fc095/src/heap/spaces.h [modify] https://crrev.com/158e78014b64c42747d05634d6281c478a9fc095/src/heap/sweeper.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/af1bffd314df11522771395c7716c115fb92c3a4 commit af1bffd314df11522771395c7716c115fb92c3a4 Author: Hannes Payer <hpayer@chromium.org> Date: Tue Feb 27 15:39:04 2018 [heap] Move FreeListCategory memory out of the page header. Bug: chromium:774108 Change-Id: I5345fed261862b0e20356ec4579b16cdf0ea58a6 Reviewed-on: https://chromium-review.googlesource.com/899148 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Michael Lippautz <mlippautz@chromium.org> Cr-Commit-Position: refs/heads/master@{#51606} [modify] https://crrev.com/af1bffd314df11522771395c7716c115fb92c3a4/src/heap/spaces-inl.h [modify] https://crrev.com/af1bffd314df11522771395c7716c115fb92c3a4/src/heap/spaces.cc [modify] https://crrev.com/af1bffd314df11522771395c7716c115fb92c3a4/src/heap/spaces.h [modify] https://crrev.com/af1bffd314df11522771395c7716c115fb92c3a4/test/cctest/heap/test-spaces.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/9776e267ef27f07694d6cb37b9c240adec635728 commit 9776e267ef27f07694d6cb37b9c240adec635728 Author: Hannes Payer <hpayer@chromium.org> Date: Fri Mar 02 14:39:03 2018 [heap] Don't modify free list entries when peeking into the free list top. Bug: chromium:774108 Change-Id: I2765b5d48a53a5ef88ba0503dd47c7188ef2518a Reviewed-on: https://chromium-review.googlesource.com/945789 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Cr-Commit-Position: refs/heads/master@{#51700} [modify] https://crrev.com/9776e267ef27f07694d6cb37b9c240adec635728/src/heap/spaces.cc [modify] https://crrev.com/9776e267ef27f07694d6cb37b9c240adec635728/src/heap/spaces.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/8bef26522ced3a48eaf586ca8b717cd15c922327 commit 8bef26522ced3a48eaf586ca8b717cd15c922327 Author: Hannes Payer <hpayer@chromium.org> Date: Tue Mar 06 12:39:04 2018 [heap] Add a CodePageCollectionMemoryModificationScope to collect unprotected code pages on the fly. Bug: chromium:774108 Change-Id: I95bfe672df13a6b8f40ba258c9ea42c6b18f6138 Reviewed-on: https://chromium-review.googlesource.com/949482 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51765} [modify] https://crrev.com/8bef26522ced3a48eaf586ca8b717cd15c922327/src/heap/heap-inl.h [modify] https://crrev.com/8bef26522ced3a48eaf586ca8b717cd15c922327/src/heap/heap.cc [modify] https://crrev.com/8bef26522ced3a48eaf586ca8b717cd15c922327/src/heap/heap.h [modify] https://crrev.com/8bef26522ced3a48eaf586ca8b717cd15c922327/src/heap/spaces.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/e816d2bad040bf1ee31b1723734bfa3ed1198f0c commit e816d2bad040bf1ee31b1723734bfa3ed1198f0c Author: Hannes Payer <hpayer@chromium.org> Date: Tue Mar 06 13:10:44 2018 [heap] Turn on --write-protect-code-memory. Bug: chromium:774108 Change-Id: Ifcf9939f29c9a3dc14ed686dc14608860ff32678 Reviewed-on: https://chromium-review.googlesource.com/950902 Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> Reviewed-by: Michael Hablich <hablich@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51766} [modify] https://crrev.com/e816d2bad040bf1ee31b1723734bfa3ed1198f0c/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/b0fa91965d76ee57dfc699169966fe5f9e1e845e commit b0fa91965d76ee57dfc699169966fe5f9e1e845e Author: Hannes Payer <hpayer@chromium.org> Date: Fri Mar 09 13:04:59 2018 Revert "[heap] Turn on --write-protect-code-memory." This reverts commit e816d2bad040bf1ee31b1723734bfa3ed1198f0c. Reason for revert: <INSERT REASONING HERE> Original change's description: > [heap] Turn on --write-protect-code-memory. > > Bug: chromium:774108 > Change-Id: Ifcf9939f29c9a3dc14ed686dc14608860ff32678 > Reviewed-on: https://chromium-review.googlesource.com/950902 > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org> > Reviewed-by: Michael Hablich <hablich@chromium.org> > Commit-Queue: Hannes Payer <hpayer@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51766} TBR=mstarzinger@chromium.org,hpayer@chromium.org,hablich@chromium.org # Not skipping CQ checks because original CL landed > 1 day ago. Bug: chromium:774108 Change-Id: Icf6da14ec795cf89d2c4085ff7f9afb892184c12 Reviewed-on: https://chromium-review.googlesource.com/955692 Reviewed-by: Hannes Payer <hpayer@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51840} [modify] https://crrev.com/b0fa91965d76ee57dfc699169966fe5f9e1e845e/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/73408095be3c554308bc8a63b3d5c815997e7afa commit 73408095be3c554308bc8a63b3d5c815997e7afa Author: Hannes Payer <hpayer@chromium.org> Date: Mon Mar 12 10:30:51 2018 [heap] Turn on --write-protect-code-memory. Bug: chromium:774108 Change-Id: I8001013d1ee75d0847fd6a804c9e37774d900992 Reviewed-on: https://chromium-review.googlesource.com/957088 Commit-Queue: Hannes Payer <hpayer@chromium.org> Reviewed-by: Andreas Haas <ahaas@chromium.org> Cr-Commit-Position: refs/heads/master@{#51873} [modify] https://crrev.com/73408095be3c554308bc8a63b3d5c815997e7afa/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/8f1cdc722b3d81ecb5e56db8a2cbca9ae4a335cd commit 8f1cdc722b3d81ecb5e56db8a2cbca9ae4a335cd Author: Michael Achenbach <machenbach@chromium.org> Date: Mon Mar 12 11:14:32 2018 Revert "[heap] Turn on --write-protect-code-memory." This reverts commit 73408095be3c554308bc8a63b3d5c815997e7afa. Reason for revert: https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20debug/builds/21075 https://build.chromium.org/p/client.v8/builders/V8%20Win32/builds/12955 Original change's description: > [heap] Turn on --write-protect-code-memory. > > Bug: chromium:774108 > Change-Id: I8001013d1ee75d0847fd6a804c9e37774d900992 > Reviewed-on: https://chromium-review.googlesource.com/957088 > Commit-Queue: Hannes Payer <hpayer@chromium.org> > Reviewed-by: Andreas Haas <ahaas@chromium.org> > Cr-Commit-Position: refs/heads/master@{#51873} TBR=hpayer@chromium.org,ahaas@chromium.org Change-Id: I52bd5085b9778f85687925e8fcb9c2a4b9c5934c No-Presubmit: true No-Tree-Checks: true No-Try: true Bug: chromium:774108 Reviewed-on: https://chromium-review.googlesource.com/958862 Reviewed-by: Michael Achenbach <machenbach@chromium.org> Commit-Queue: Michael Achenbach <machenbach@chromium.org> Cr-Commit-Position: refs/heads/master@{#51875} [modify] https://crrev.com/8f1cdc722b3d81ecb5e56db8a2cbca9ae4a335cd/src/flag-definitions.h
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f1cf0733cddf9e5c45648d84b12e35fcd5ac616a commit f1cf0733cddf9e5c45648d84b12e35fcd5ac616a Author: Hannes Payer <hpayer@chromium.org> Date: Mon Mar 12 14:13:52 2018 [heap] Unprotect huge free list nodes for code allocation. Bug: chromium:774108 Change-Id: I640a4f0f17244ee77fa5480ec9faa773310b9caf Reviewed-on: https://chromium-review.googlesource.com/958907 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51880} [modify] https://crrev.com/f1cf0733cddf9e5c45648d84b12e35fcd5ac616a/src/heap/spaces.cc
The following revision refers to this bug: https://chromium.googlesource.com/v8/v8.git/+/f7aa8ea00bbf200e9050a22ec84fab4f323849a7 commit f7aa8ea00bbf200e9050a22ec84fab4f323849a7 Author: Hannes Payer <hpayer@chromium.org> Date: Mon Mar 12 14:50:52 2018 [heap] Turn on --write-protect-code-memory. Bug: chromium:774108 Change-Id: I04546edfbc20e92757bd6da0505868f357f8d40d Reviewed-on: https://chromium-review.googlesource.com/959005 Reviewed-by: Ulan Degenbaev <ulan@chromium.org> Commit-Queue: Hannes Payer <hpayer@chromium.org> Cr-Commit-Position: refs/heads/master@{#51884} [modify] https://crrev.com/f7aa8ea00bbf200e9050a22ec84fab4f323849a7/src/flag-definitions.h
I see this bug got marked fixed, but wasm still has rwx pages after the revert in comment #26. Is there a separate tracking bug for this in v8?
Tracking bug did not exist yet, but I filed issue v8:8715 for that purpose just now.
Please also note that there is issue v8:6792 which is the V8-side tracking bug for this with blocking issues linked against it.
Comment 1 by bugdroid1@chromium.org
, Oct 16 2017