• Dan Elphick's avatar
    Reland "[heap] Mark RO_SPACE as read-only after deserialization" · 60064133
    Dan Elphick authored
    This is a reland of 40f1aaf3
    
    Put back padding clearing into the SerializeObject method but only when
    the String is not in RO_SPACE. For RO_SPACE strings, if required
    iterate over the space before serialization clearing the strings.
    
    Original change's description:
    > [heap] Mark RO_SPACE as read-only after deserialization
    >
    > Adds MarkAsReadOnly and MarkAsReadWrite to ReadOnlySpace. The latter
    > is only usable with ReadOnlySpace::WritableScope to avoid the space
    > being left writable). MarkAsReadOnly updates the high water mark and
    > makes several previously mutating methods into no-ops.
    >
    > Moves some writes to immutable objects out of the bootstrapper to
    > setup-heap-internal so they don't write to a read-only page.
    >
    > Also avoid writing hashes to strings that already have the value set as
    > that invariably means writing to the "0" and "1" constant strings in
    > RO_SPACE.
    >
    > Before serialization, it makes RO_SPACE writable again so that any
    > padding can be cleared before writing it.
    >
    > Bug: v8:7464
    > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
    > Change-Id: I22edc20dba7dde8943991a8fcaf87244af4490a3
    > Reviewed-on: https://chromium-review.googlesource.com/1014128
    > Commit-Queue: Dan Elphick <delphick@chromium.org>
    > Reviewed-by: Hannes Payer <hpayer@chromium.org>
    > Reviewed-by: Yang Guo <yangguo@chromium.org>
    > Cr-Commit-Position: refs/heads/master@{#52943}
    
    Bug: v8:7464
    Change-Id: Ia8386c4ff5f5df3207f584caf7a9b1ff1e405f25
    Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
    Reviewed-on: https://chromium-review.googlesource.com/1042145Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
    Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
    Commit-Queue: Dan Elphick <delphick@chromium.org>
    Cr-Commit-Position: refs/heads/master@{#53087}
    60064133
Name
Last commit
Last update
..
OWNERS Loading commit data...
array-buffer-collector.cc Loading commit data...
array-buffer-collector.h Loading commit data...
array-buffer-tracker-inl.h Loading commit data...
array-buffer-tracker.cc Loading commit data...
array-buffer-tracker.h Loading commit data...
barrier.h Loading commit data...
code-stats.cc Loading commit data...
code-stats.h Loading commit data...
concurrent-marking.cc Loading commit data...
concurrent-marking.h Loading commit data...
embedder-tracing.cc Loading commit data...
embedder-tracing.h Loading commit data...
factory-inl.h Loading commit data...
factory.cc Loading commit data...
factory.h Loading commit data...
gc-idle-time-handler.cc Loading commit data...
gc-idle-time-handler.h Loading commit data...
gc-tracer.cc Loading commit data...
gc-tracer.h Loading commit data...
heap-inl.h Loading commit data...
heap.cc Loading commit data...
heap.h Loading commit data...
incremental-marking-inl.h Loading commit data...
incremental-marking-job.cc Loading commit data...
incremental-marking-job.h Loading commit data...
incremental-marking.cc Loading commit data...
incremental-marking.h Loading commit data...
invalidated-slots-inl.h Loading commit data...
invalidated-slots.cc Loading commit data...
invalidated-slots.h Loading commit data...
item-parallel-job.cc Loading commit data...
item-parallel-job.h Loading commit data...
local-allocator.h Loading commit data...
mark-compact-inl.h Loading commit data...
mark-compact.cc Loading commit data...
mark-compact.h Loading commit data...
marking.cc Loading commit data...
marking.h Loading commit data...
memory-reducer.cc Loading commit data...
memory-reducer.h Loading commit data...
object-stats.cc Loading commit data...
object-stats.h Loading commit data...
objects-visiting-inl.h Loading commit data...
objects-visiting.cc Loading commit data...
objects-visiting.h Loading commit data...
remembered-set.h Loading commit data...
scavenge-job.cc Loading commit data...
scavenge-job.h Loading commit data...
scavenger-inl.h Loading commit data...
scavenger.cc Loading commit data...
scavenger.h Loading commit data...
setup-heap-internal.cc Loading commit data...
slot-set.h Loading commit data...
spaces-inl.h Loading commit data...
spaces.cc Loading commit data...
spaces.h Loading commit data...
store-buffer.cc Loading commit data...
store-buffer.h Loading commit data...
stress-marking-observer.cc Loading commit data...
stress-marking-observer.h Loading commit data...
stress-scavenge-observer.cc Loading commit data...
stress-scavenge-observer.h Loading commit data...
sweeper.cc Loading commit data...
sweeper.h Loading commit data...
worklist.h Loading commit data...