• 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
benchmarks Loading commit data...
build_overrides Loading commit data...
docs Loading commit data...
gni Loading commit data...
include Loading commit data...
infra Loading commit data...
samples Loading commit data...
src Loading commit data...
test Loading commit data...
testing Loading commit data...
third_party Loading commit data...
tools Loading commit data...
.clang-format Loading commit data...
.editorconfig Loading commit data...
.git-blame-ignore-revs Loading commit data...
.gitattributes Loading commit data...
.gitignore Loading commit data...
.gn Loading commit data...
.vpython Loading commit data...
.ycm_extra_conf.py Loading commit data...
AUTHORS Loading commit data...
BUILD.gn Loading commit data...
CODE_OF_CONDUCT.md Loading commit data...
ChangeLog Loading commit data...
DEPS Loading commit data...
LICENSE Loading commit data...
LICENSE.fdlibm Loading commit data...
LICENSE.strongtalk Loading commit data...
LICENSE.v8 Loading commit data...
LICENSE.valgrind Loading commit data...
OWNERS Loading commit data...
PRESUBMIT.py Loading commit data...
README.md Loading commit data...
WATCHLISTS Loading commit data...
codereview.settings Loading commit data...
snapshot_toolchain.gni Loading commit data...