1. 04 Nov, 2019 1 commit
    • Dan Elphick's avatar
      Reland "Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE" · 352bbb12
      Dan Elphick authored
      This is a reland of 855591a5
      
      Fixes break in builds that verify ReadOnlyHeap by relaxing the requirement for
      Code objects to be in CODE_SPACE in PagedSpaceObjectIterator::FromCurrentPage.
      
      Original change's description:
      > Reland: [builtins] Move non-JS linkage builtins code objects into RO_SPACE
      >
      > Reland of https://chromium-review.googlesource.com/c/v8/v8/+/1795358.
      >
      > [builtins] Move non-JS linkage builtins code objects into RO_SPACE
      >
      > Creates an allow-list of builtins that can still go in code_space
      > including all TFJ builtins and a small manual list that should be pared
      > down in the future.
      >
      > For builtins that go in RO_SPACE a Code object is created that contains an
      > immediate trap instruction. Generally these Code objects are still no
      > smaller than CODE_SPACE Code objects because of the Code object alignment
      > requirements. This will hopefully be addressed in a follow-up CL either by
      > relaxing them or removing the instruction stream completely.
      >
      > In the snapshot, this reduces code_space from ~152k to ~40k (-112k) and
      > increases by the same amount.
      >
      > Change-Id: I76661c35c7ea5866c1fb16e87e87122b3e3ca0ce
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893336
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#64700}
      
      Change-Id: I4eeb7dab3027b42fa58c5dfb2bad9873e9fff250
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1893192
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64728}
      352bbb12
  2. 31 Oct, 2019 2 commits
  3. 18 Oct, 2019 2 commits
    • Sathya Gunasekaran's avatar
      Revert "[builtins] Move non-JS linkage builtins code objects into RO_SPACE" · f1ebde88
      Sathya Gunasekaran authored
      This reverts commit 83f8464f.
      
      Reason for revert: speculative revert for blink linux failure
      https://ci.chromium.org/p/v8/builders/ci/V8%20Blink%20Linux/1272
      
      Original change's description:
      > [builtins] Move non-JS linkage builtins code objects into RO_SPACE
      > 
      > Creates an allow-list of builtins that can still go in code_space
      > including all TFJ builtins and a small manual list that should be pared
      > down in the future.
      > 
      > For builtins that go in RO_SPACE a Code object is created that contains
      > no code at all (shrinking its size from 96 bytes to 64 bytes on x64),
      > but is there to allow the runtime to continue to work since it expects
      > a Code object.
      > 
      > This reduces code_space from ~152k to ~40k (-112k) and increases
      > read_only_space from 33k to 108k (+75k) in the snapshot.
      > 
      > Bug: v8:7464, v8:9821, v8:9338, v8:8127
      > Change-Id: Icc8bfc722bb267a2bcc17e2f1e27bef7f02f2376
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795358
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Reviewed-by: Michael Starzinger <mstarzinger@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#64377}
      
      TBR=mstarzinger@chromium.org,jgruber@chromium.org,delphick@chromium.org
      
      Change-Id: I4cf38e9370280acdd2de718ca527776ebc509003
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7464, v8:9821, v8:9338, v8:8127
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1868621Reviewed-by: 's avatarSathya Gunasekaran  <gsathya@chromium.org>
      Commit-Queue: Sathya Gunasekaran  <gsathya@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64383}
      f1ebde88
    • Dan Elphick's avatar
      [builtins] Move non-JS linkage builtins code objects into RO_SPACE · 83f8464f
      Dan Elphick authored
      Creates an allow-list of builtins that can still go in code_space
      including all TFJ builtins and a small manual list that should be pared
      down in the future.
      
      For builtins that go in RO_SPACE a Code object is created that contains
      no code at all (shrinking its size from 96 bytes to 64 bytes on x64),
      but is there to allow the runtime to continue to work since it expects
      a Code object.
      
      This reduces code_space from ~152k to ~40k (-112k) and increases
      read_only_space from 33k to 108k (+75k) in the snapshot.
      
      Bug: v8:7464, v8:9821, v8:9338, v8:8127
      Change-Id: Icc8bfc722bb267a2bcc17e2f1e27bef7f02f2376
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1795358
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#64377}
      83f8464f
  4. 20 Jun, 2019 1 commit
    • Maciej Goszczycki's avatar
      Reland "[roheap] Check that ro-heap is always passed the same read-only snapshot" · a5e7c03b
      Maciej Goszczycki authored
      This is a reland of a5fa211f
      
      des_checksum and call_once_run were undefined and unused respectively when
      shared read-only heap was enabled. Fixed with a copious amounts of USE.
      
      Original change's description:
      > [roheap] Check that ro-heap is always passed the same read-only snapshot
      >
      > Previously the ReadOnlyHeap simply discarded all but the first
      > ReadOnlyDeseralizer. ClearSharedHeapForTest should be called if using a
      > new ReadOnlyDeserializer (this might change in the future).
      >
      > Remove an obsolete 'StartupSerializerRootMapDependencies' test. It used
      > to test Map::WeakCellForMap which doesn't exist anymore and was
      > difficult to adapt to a shared read-only heap.
      >
      > Bug: v8:7464
      > Change-Id: I64b8e953b0e3466e003541ec8a9321e439a01d33
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1660612
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      > Cr-Commit-Position: refs/heads/master@{#62250}
      
      TBR: yangguo@chromium.org
      Bug: v8:7464
      Change-Id: Id66e781be890c5ed03d066f8c62de703d5cb435e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1667415Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#62302}
      a5e7c03b
  5. 18 Jun, 2019 2 commits
  6. 17 Jun, 2019 1 commit
  7. 06 Jun, 2019 1 commit
  8. 24 May, 2019 1 commit
  9. 23 May, 2019 1 commit
  10. 21 May, 2019 1 commit
  11. 20 May, 2019 1 commit
  12. 08 May, 2019 1 commit
    • Maciej Goszczycki's avatar
      Reland "[heap] Set read-only space's and its pages' heap_ to null." · b672d089
      Maciej Goszczycki authored
      Seems like the CodeBuilder CL actually caused this.
      
      This is a reland of 964edc25
      
      Original change's description:
      > [heap] Set read-only space's and its pages' heap_ to null.
      >
      > Various small changes are required to enable this.
      >
      > HeapObject::GetReadOnlyRoots no longer uses the Space's heap when
      > possible (see comment in ReadOnlyHeap::GetReadOnlyRoots definition).
      > This requires that ReadOnlyRoots be construct-able using a raw pointer
      > to the read-only space's roots array.
      >
      > Global read-only heap state is now cleared by tests where appropriate
      > and extra DCHECKs in ReadOnlyHeap::SetUp should make catching future
      > issues easier.
      >
      > String padding is now always cleared just before read-only space is
      > sealed when not deserializing.
      >
      > Change-Id: I7d1db1c11567be5df06ff7066f3a699125f8b372
      > Bug: v8:7464
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535830
      > Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61188}
      
      Bug: v8:7464
      Change-Id: If75bbd16c2e2af5b80cd60811dfd7866f8be8309
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1599186
      Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61323}
      b672d089
  13. 03 May, 2019 1 commit
    • Maciej Goszczycki's avatar
      Revert "[heap] Set read-only space's and its pages' heap_ to null." · fa4b433f
      Maciej Goszczycki authored
      This reverts commit 964edc25.
      
      Reason for revert: chromium:959190
      
      Original change's description:
      > [heap] Set read-only space's and its pages' heap_ to null.
      >
      > Various small changes are required to enable this.
      >
      > HeapObject::GetReadOnlyRoots no longer uses the Space's heap when
      > possible (see comment in ReadOnlyHeap::GetReadOnlyRoots definition).
      > This requires that ReadOnlyRoots be construct-able using a raw pointer
      > to the read-only space's roots array.
      >
      > Global read-only heap state is now cleared by tests where appropriate
      > and extra DCHECKs in ReadOnlyHeap::SetUp should make catching future
      > issues easier.
      >
      > String padding is now always cleared just before read-only space is
      > sealed when not deserializing.
      >
      > Change-Id: I7d1db1c11567be5df06ff7066f3a699125f8b372
      > Bug: v8:7464
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535830
      > Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#61188}
      
      TBR=ulan@chromium.org,hpayer@chromium.org,delphick@chromium.org,goszczycki@google.com
      
      Change-Id: I53cecf3976dfeabae309040313351385f651f010
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7464, chromium:959190
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1591608Reviewed-by: 's avatarAdam Klein <adamk@chromium.org>
      Commit-Queue: Adam Klein <adamk@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61217}
      fa4b433f
  14. 02 May, 2019 2 commits
    • Maciej Goszczycki's avatar
      [heap] Set read-only space's and its pages' heap_ to null. · 964edc25
      Maciej Goszczycki authored
      Various small changes are required to enable this.
      
      HeapObject::GetReadOnlyRoots no longer uses the Space's heap when
      possible (see comment in ReadOnlyHeap::GetReadOnlyRoots definition).
      This requires that ReadOnlyRoots be construct-able using a raw pointer
      to the read-only space's roots array.
      
      Global read-only heap state is now cleared by tests where appropriate
      and extra DCHECKs in ReadOnlyHeap::SetUp should make catching future
      issues easier.
      
      String padding is now always cleared just before read-only space is
      sealed when not deserializing.
      
      Change-Id: I7d1db1c11567be5df06ff7066f3a699125f8b372
      Bug: v8:7464
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1535830
      Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#61188}
      964edc25
    • Maciej Goszczycki's avatar
      Reland "[heap] Skip ro-space from heap iterators, add CombinedHeapIterator." · 9c062093
      Maciej Goszczycki authored
      Code relocation info is now always allocated in old-space. Before relocation
      info allocated for placeholders and builtins (which get replaced with
      trampolines in nosnap builds) would become unreachable. Since read-only space
      is not GCed and ReadOnlyHeapIterator doesn't check for reachability,
      ValidateSnapshot would fail finding unreachable objects returned by
      ReadOnlyHeapIterator.
      
      Because trampoline relocation info gets replaced with canonical one, this only
      affects no-embdded-builtins nosnap builds, which don't get much benefit from
      read-only relocation info anyway.
      
      A new check has been added to the read-only deserializer to verify that every
      read-only object is reachable at mksnapshot-time.
      
      The CombinedHeapIterator iteration order was changed to iterate over
      read-only space first, because that's how HeapIterator worked.
      
      This is a reland of 3d1d8eae
      
      Original change's description:
      > [heap] Skip ro-space from heap iterators, add CombinedHeapIterator.
      >
      > Read-only space sharing requires an iterator independent of heap. This
      > also enables future removal of read-only space from heap.
      >
      > Bug: v8:7464
      > Change-Id: Ia07a9369494ea2c547d12c01ffa1d7b8b6bbeabc
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1552795
      > Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Dan Elphick <delphick@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#60819}
      
      Bug: v8:7464
      Change-Id: I49ae070955b77956962334a84f762ab29052d5ff
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/1566513Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Maciej Goszczycki <goszczycki@google.com>
      Cr-Commit-Position: refs/heads/master@{#61185}
      9c062093
  15. 12 Apr, 2019 2 commits
  16. 01 Apr, 2019 1 commit
  17. 28 Mar, 2019 1 commit
  18. 14 Mar, 2019 1 commit
  19. 13 Mar, 2019 2 commits
  20. 12 Mar, 2019 1 commit
  21. 28 Feb, 2019 1 commit