• 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
..
DEPS Loading commit data...
OWNERS Loading commit data...
builtin-deserializer-allocator.cc Loading commit data...
builtin-deserializer-allocator.h Loading commit data...
builtin-deserializer.cc Loading commit data...
builtin-deserializer.h Loading commit data...
builtin-serializer-allocator.cc Loading commit data...
builtin-serializer-allocator.h Loading commit data...
builtin-serializer.cc Loading commit data...
builtin-serializer.h Loading commit data...
builtin-snapshot-utils.cc Loading commit data...
builtin-snapshot-utils.h Loading commit data...
code-serializer.cc Loading commit data...
code-serializer.h Loading commit data...
default-deserializer-allocator.cc Loading commit data...
default-deserializer-allocator.h Loading commit data...
default-serializer-allocator.cc Loading commit data...
default-serializer-allocator.h Loading commit data...
deserializer.cc Loading commit data...
deserializer.h Loading commit data...
embedded-empty.cc Loading commit data...
macros.h Loading commit data...
mksnapshot.cc Loading commit data...
natives-common.cc Loading commit data...
natives-external.cc Loading commit data...
natives.h Loading commit data...
object-deserializer.cc Loading commit data...
object-deserializer.h Loading commit data...
partial-deserializer.cc Loading commit data...
partial-deserializer.h Loading commit data...
partial-serializer.cc Loading commit data...
partial-serializer.h Loading commit data...
serializer-common.cc Loading commit data...
serializer-common.h Loading commit data...
serializer.cc Loading commit data...
serializer.h Loading commit data...
snapshot-common.cc Loading commit data...
snapshot-empty.cc Loading commit data...
snapshot-external.cc Loading commit data...
snapshot-source-sink.cc Loading commit data...
snapshot-source-sink.h Loading commit data...
snapshot.h Loading commit data...
startup-deserializer.cc Loading commit data...
startup-deserializer.h Loading commit data...
startup-serializer.cc Loading commit data...
startup-serializer.h Loading commit data...