New issue
Advanced search Search tips
Note: Color blocks (like or ) mean that a user may not be available. Tooltip shows the reason.

Issue 774108 link

Starred by 2 users

Issue metadata

Status: Fixed
Owner:
Last visit > 30 days ago
Closed: Jul 5
Cc:
EstimatedDays: ----
NextAction: ----
OS: ----
Pri: 3
Type: Bug

Blocked on:
issue v8:7100

Blocking:
issue v8:6792



Sign in to add a comment

Implement write protected code pages

Project Member Reported by hpayer@chromium.org, Oct 12 2017

Issue description

Implement write protected code pages
 
Project Member

Comment 1 by bugdroid1@chromium.org, Oct 16 2017

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

Project Member

Comment 2 by bugdroid1@chromium.org, Oct 20 2017

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

Project Member

Comment 3 by bugdroid1@chromium.org, Oct 26 2017

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

Project Member

Comment 4 by bugdroid1@chromium.org, Oct 26 2017

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

Project Member

Comment 5 by bugdroid1@chromium.org, Oct 26 2017

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

Project Member

Comment 6 by bugdroid1@chromium.org, Oct 26 2017

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

Project Member

Comment 7 by bugdroid1@chromium.org, Oct 26 2017

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

Project Member

Comment 8 by bugdroid1@chromium.org, Nov 6 2017

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

Project Member

Comment 9 by bugdroid1@chromium.org, Nov 7 2017

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

Project Member

Comment 10 by bugdroid1@chromium.org, Nov 8 2017

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

Project Member

Comment 11 by bugdroid1@chromium.org, Nov 16 2017

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

Project Member

Comment 12 by bugdroid1@chromium.org, Nov 16 2017

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

Project Member

Comment 13 by bugdroid1@chromium.org, Nov 21 2017

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

Blockedon: v8:7100
Project Member

Comment 15 by bugdroid1@chromium.org, Nov 21 2017

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

Project Member

Comment 16 by bugdroid1@chromium.org, Nov 23 2017

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

Project Member

Comment 17 by bugdroid1@chromium.org, Nov 28 2017

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

Project Member

Comment 18 by bugdroid1@chromium.org, Jan 16 2018

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

Project Member

Comment 19 by bugdroid1@chromium.org, Jan 17 2018

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

Project Member

Comment 20 by bugdroid1@chromium.org, Jan 18 2018

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

Project Member

Comment 21 by bugdroid1@chromium.org, Feb 1 2018

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

Project Member

Comment 22 by bugdroid1@chromium.org, Feb 27 2018

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

Project Member

Comment 23 by bugdroid1@chromium.org, Mar 2 2018

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

Project Member

Comment 24 by bugdroid1@chromium.org, Mar 6 2018

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

Project Member

Comment 25 by bugdroid1@chromium.org, Mar 6 2018

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

Project Member

Comment 26 by bugdroid1@chromium.org, Mar 9 2018

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

Project Member

Comment 27 by bugdroid1@chromium.org, Mar 12 2018

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

Project Member

Comment 28 by bugdroid1@chromium.org, Mar 12 2018

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

Project Member

Comment 29 by bugdroid1@chromium.org, Mar 12 2018

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

Project Member

Comment 30 by bugdroid1@chromium.org, Mar 12 2018

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

Status: Fixed (was: Started)

Comment 32 by mpdenton@chromium.org, Jan 17 (5 days ago)

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?

Comment 33 by mstarzinger@chromium.org, Jan 18 (5 days ago)

Tracking bug did not exist yet, but I filed issue v8:8715 for that purpose just now.

Comment 34 by mstarzinger@chromium.org, Jan 18 (5 days ago)

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 35 by mstarzinger@chromium.org, Jan 18 (5 days ago)

Blocking: v8:6792

Sign in to add a comment