1. 12 Oct, 2018 1 commit
  2. 17 Sep, 2018 1 commit
  3. 15 Sep, 2018 1 commit
  4. 12 Sep, 2018 4 commits
  5. 11 Sep, 2018 2 commits
  6. 10 Sep, 2018 1 commit
  7. 27 Jul, 2018 1 commit
  8. 07 Jun, 2018 1 commit
  9. 22 May, 2018 1 commit
  10. 14 May, 2018 1 commit
  11. 19 Apr, 2018 1 commit
    • Dan Elphick's avatar
      Reland "Reland "[heap] Move initial objects into RO_SPACE"" · 9ab6621a
      Dan Elphick authored
      This is a reland of 6c68efac
      
      Updated Heap::CommittedMemory and related functions to iterate over all
      spaces rather than including them manually which can lead to a space
      being overlooked. Also adds a test to ensure this the case.
      
      Original change's description:
      > Revert "Reland "[heap] Move initial objects into RO_SPACE""
      >
      > This reverts commit 6c68efac.
      >
      > Reason for revert: https://bugs.chromium.org/p/v8/issues/detail?id=7668
      >
      > Original change's description:
      > > Reland "[heap] Move initial objects into RO_SPACE"
      > >
      > > This is a reland of f8ae62fe
      > >
      > > Original change's description:
      > > > [heap] Move initial objects into RO_SPACE
      > > >
      > > > This moves:
      > > > * the main oddballs (null, undefined, hole, true, false) as well as
      > > > their supporting maps (also adds hole as an internalized string to make
      > > > this work).
      > > > * most of the internalized strings
      > > > * the struct maps
      > > > * empty array
      > > > * empty enum cache
      > > > * the contents of the initial string table
      > > > * the weak_cell_cache for any map in RO_SPACE (and eagerly creates the
      > > > value avoid writing to it during run-time)
      > > >
      > > > The StartupSerializer stats change as follows:
      > > >
      > > >      RO_SPACE  NEW_SPACE  OLD_SPACE  CODE_SPACE  MAP_SPACE  LO_SPACE
      > > > old         0          0     270264       32608      12144         0
      > > > new     21776          0     253168       32608       8184         0
      > > > Overall memory usage has increased by 720 bytes due to the eager
      > > > initialization of the Map weak cell caches.
      > > >
      > > > Also extends --serialization-statistics to print out separate instance
      > > > type stats for objects in RO_SPACE as shown here:
      > > >
      > > >   Read Only Instance types (count and bytes):
      > > >        404      16736  ONE_BYTE_INTERNALIZED_STRING_TYPE
      > > >          2         32  HEAP_NUMBER_TYPE
      > > >          5        240  ODDBALL_TYPE
      > > >         45       3960  MAP_TYPE
      > > >          1         16  BYTE_ARRAY_TYPE
      > > >          1         24  TUPLE2_TYPE
      > > >          1         16  FIXED_ARRAY_TYPE
      > > >          1         32  DESCRIPTOR_ARRAY_TYPE
      > > >         45        720  WEAK_CELL_TYPE
      > > >
      > > > Bug: v8:7464
      > > > Change-Id: I12981c39c82a7057f68bbbe03f89fb57b0b4c6a6
      > > > Reviewed-on: https://chromium-review.googlesource.com/973722
      > > > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > > > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > > Cr-Commit-Position: refs/heads/master@{#52435}
      > >
      > > Bug: v8:7464
      > > Change-Id: I50427edfeb53ca80ec4cf46566368fb2213ccf7b
      > > Reviewed-on: https://chromium-review.googlesource.com/999654
      > > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#52638}
      >
      > TBR=rmcilroy@chromium.org,yangguo@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,delphick@chromium.org
      >
      > # Not skipping CQ checks because original CL landed > 1 day ago.
      >
      > Bug: v8:7464,v8:7668
      > Change-Id: I10aa03623b51e997f95a3715ea9f0bf5d29d2cdb
      > Reviewed-on: https://chromium-review.googlesource.com/1016600
      > Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52667}
      
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: If4b7490c8c4d31612de8ec132de334955a319b11
      Bug: v8:7464, v8:7668
      Reviewed-on: https://chromium-review.googlesource.com/1019020Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52689}
      9ab6621a
  12. 18 Apr, 2018 1 commit
    • Peter Marshall's avatar
      Revert "Reland "[heap] Move initial objects into RO_SPACE"" · c2280f9a
      Peter Marshall authored
      This reverts commit 6c68efac.
      
      Reason for revert: https://bugs.chromium.org/p/v8/issues/detail?id=7668
      
      Original change's description:
      > Reland "[heap] Move initial objects into RO_SPACE"
      >
      > This is a reland of f8ae62fe
      >
      > Original change's description:
      > > [heap] Move initial objects into RO_SPACE
      > >
      > > This moves:
      > > * the main oddballs (null, undefined, hole, true, false) as well as
      > > their supporting maps (also adds hole as an internalized string to make
      > > this work).
      > > * most of the internalized strings
      > > * the struct maps
      > > * empty array
      > > * empty enum cache
      > > * the contents of the initial string table
      > > * the weak_cell_cache for any map in RO_SPACE (and eagerly creates the
      > > value avoid writing to it during run-time)
      > >
      > > The StartupSerializer stats change as follows:
      > >
      > >      RO_SPACE  NEW_SPACE  OLD_SPACE  CODE_SPACE  MAP_SPACE  LO_SPACE
      > > old         0          0     270264       32608      12144         0
      > > new     21776          0     253168       32608       8184         0
      > > Overall memory usage has increased by 720 bytes due to the eager
      > > initialization of the Map weak cell caches.
      > >
      > > Also extends --serialization-statistics to print out separate instance
      > > type stats for objects in RO_SPACE as shown here:
      > >
      > >   Read Only Instance types (count and bytes):
      > >        404      16736  ONE_BYTE_INTERNALIZED_STRING_TYPE
      > >          2         32  HEAP_NUMBER_TYPE
      > >          5        240  ODDBALL_TYPE
      > >         45       3960  MAP_TYPE
      > >          1         16  BYTE_ARRAY_TYPE
      > >          1         24  TUPLE2_TYPE
      > >          1         16  FIXED_ARRAY_TYPE
      > >          1         32  DESCRIPTOR_ARRAY_TYPE
      > >         45        720  WEAK_CELL_TYPE
      > >
      > > Bug: v8:7464
      > > Change-Id: I12981c39c82a7057f68bbbe03f89fb57b0b4c6a6
      > > Reviewed-on: https://chromium-review.googlesource.com/973722
      > > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > > Cr-Commit-Position: refs/heads/master@{#52435}
      >
      > Bug: v8:7464
      > Change-Id: I50427edfeb53ca80ec4cf46566368fb2213ccf7b
      > Reviewed-on: https://chromium-review.googlesource.com/999654
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52638}
      
      TBR=rmcilroy@chromium.org,yangguo@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,delphick@chromium.org
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:7464,v8:7668
      Change-Id: I10aa03623b51e997f95a3715ea9f0bf5d29d2cdb
      Reviewed-on: https://chromium-review.googlesource.com/1016600
      Commit-Queue: Peter Marshall <petermarshall@chromium.org>
      Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52667}
      c2280f9a
  13. 17 Apr, 2018 1 commit
    • Dan Elphick's avatar
      Reland "[heap] Move initial objects into RO_SPACE" · 6c68efac
      Dan Elphick authored
      This is a reland of f8ae62fe
      
      Original change's description:
      > [heap] Move initial objects into RO_SPACE
      > 
      > This moves:
      > * the main oddballs (null, undefined, hole, true, false) as well as
      > their supporting maps (also adds hole as an internalized string to make
      > this work).
      > * most of the internalized strings
      > * the struct maps
      > * empty array
      > * empty enum cache
      > * the contents of the initial string table
      > * the weak_cell_cache for any map in RO_SPACE (and eagerly creates the
      > value avoid writing to it during run-time)
      > 
      > The StartupSerializer stats change as follows:
      > 
      >      RO_SPACE  NEW_SPACE  OLD_SPACE  CODE_SPACE  MAP_SPACE  LO_SPACE
      > old         0          0     270264       32608      12144         0
      > new     21776          0     253168       32608       8184         0
      > Overall memory usage has increased by 720 bytes due to the eager
      > initialization of the Map weak cell caches.
      > 
      > Also extends --serialization-statistics to print out separate instance
      > type stats for objects in RO_SPACE as shown here:
      > 
      >   Read Only Instance types (count and bytes):
      >        404      16736  ONE_BYTE_INTERNALIZED_STRING_TYPE
      >          2         32  HEAP_NUMBER_TYPE
      >          5        240  ODDBALL_TYPE
      >         45       3960  MAP_TYPE
      >          1         16  BYTE_ARRAY_TYPE
      >          1         24  TUPLE2_TYPE
      >          1         16  FIXED_ARRAY_TYPE
      >          1         32  DESCRIPTOR_ARRAY_TYPE
      >         45        720  WEAK_CELL_TYPE
      > 
      > Bug: v8:7464
      > Change-Id: I12981c39c82a7057f68bbbe03f89fb57b0b4c6a6
      > Reviewed-on: https://chromium-review.googlesource.com/973722
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52435}
      
      Bug: v8:7464
      Change-Id: I50427edfeb53ca80ec4cf46566368fb2213ccf7b
      Reviewed-on: https://chromium-review.googlesource.com/999654
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52638}
      6c68efac
  14. 14 Apr, 2018 1 commit
    • Jakob Kummerow's avatar
      [ubsan] Change Address typedef to uintptr_t · 2459046c
      Jakob Kummerow authored
      The "Address" type is V8's general-purpose type for manipulating memory
      addresses. Per the C++ spec, pointer arithmetic and pointer comparisons
      are undefined behavior except within the same array; since we generally
      don't operate within a C++ array, our general-purpose type shouldn't be
      a pointer type.
      
      Bug: v8:3770
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng;master.tryserver.blink:linux_trusty_blink_rel
      Change-Id: Ib96016c24a0f18bcdba916dabd83e3f24a1b5779
      Reviewed-on: https://chromium-review.googlesource.com/988657
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarLeszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52601}
      2459046c
  15. 09 Apr, 2018 2 commits
  16. 06 Apr, 2018 4 commits
    • Michael Achenbach's avatar
      Revert "[heap] Move initial objects into RO_SPACE" · 223e0088
      Michael Achenbach authored
      This reverts commit f8ae62fe.
      
      Reason for revert:
      https://build.chromium.org/p/client.v8/builders/V8%20Linux64%20-%20internal%20snapshot/builds/14825
      
      Original change's description:
      > [heap] Move initial objects into RO_SPACE
      > 
      > This moves:
      > * the main oddballs (null, undefined, hole, true, false) as well as
      > their supporting maps (also adds hole as an internalized string to make
      > this work).
      > * most of the internalized strings
      > * the struct maps
      > * empty array
      > * empty enum cache
      > * the contents of the initial string table
      > * the weak_cell_cache for any map in RO_SPACE (and eagerly creates the
      > value avoid writing to it during run-time)
      > 
      > The StartupSerializer stats change as follows:
      > 
      >      RO_SPACE  NEW_SPACE  OLD_SPACE  CODE_SPACE  MAP_SPACE  LO_SPACE
      > old         0          0     270264       32608      12144         0
      > new     21776          0     253168       32608       8184         0
      > Overall memory usage has increased by 720 bytes due to the eager
      > initialization of the Map weak cell caches.
      > 
      > Also extends --serialization-statistics to print out separate instance
      > type stats for objects in RO_SPACE as shown here:
      > 
      >   Read Only Instance types (count and bytes):
      >        404      16736  ONE_BYTE_INTERNALIZED_STRING_TYPE
      >          2         32  HEAP_NUMBER_TYPE
      >          5        240  ODDBALL_TYPE
      >         45       3960  MAP_TYPE
      >          1         16  BYTE_ARRAY_TYPE
      >          1         24  TUPLE2_TYPE
      >          1         16  FIXED_ARRAY_TYPE
      >          1         32  DESCRIPTOR_ARRAY_TYPE
      >         45        720  WEAK_CELL_TYPE
      > 
      > Bug: v8:7464
      > Change-Id: I12981c39c82a7057f68bbbe03f89fb57b0b4c6a6
      > Reviewed-on: https://chromium-review.googlesource.com/973722
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52435}
      
      TBR=rmcilroy@chromium.org,yangguo@chromium.org,hpayer@chromium.org,mlippautz@chromium.org,delphick@chromium.org
      
      Change-Id: Ie62a73a5be3b21a15bb46e342acb3e808fbaa4f3
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:7464
      Reviewed-on: https://chromium-review.googlesource.com/999653Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52440}
      223e0088
    • Dan Elphick's avatar
      [heap] Move initial objects into RO_SPACE · f8ae62fe
      Dan Elphick authored
      This moves:
      * the main oddballs (null, undefined, hole, true, false) as well as
      their supporting maps (also adds hole as an internalized string to make
      this work).
      * most of the internalized strings
      * the struct maps
      * empty array
      * empty enum cache
      * the contents of the initial string table
      * the weak_cell_cache for any map in RO_SPACE (and eagerly creates the
      value avoid writing to it during run-time)
      
      The StartupSerializer stats change as follows:
      
           RO_SPACE  NEW_SPACE  OLD_SPACE  CODE_SPACE  MAP_SPACE  LO_SPACE
      old         0          0     270264       32608      12144         0
      new     21776          0     253168       32608       8184         0
      Overall memory usage has increased by 720 bytes due to the eager
      initialization of the Map weak cell caches.
      
      Also extends --serialization-statistics to print out separate instance
      type stats for objects in RO_SPACE as shown here:
      
        Read Only Instance types (count and bytes):
             404      16736  ONE_BYTE_INTERNALIZED_STRING_TYPE
               2         32  HEAP_NUMBER_TYPE
               5        240  ODDBALL_TYPE
              45       3960  MAP_TYPE
               1         16  BYTE_ARRAY_TYPE
               1         24  TUPLE2_TYPE
               1         16  FIXED_ARRAY_TYPE
               1         32  DESCRIPTOR_ARRAY_TYPE
              45        720  WEAK_CELL_TYPE
      
      Bug: v8:7464
      Change-Id: I12981c39c82a7057f68bbbe03f89fb57b0b4c6a6
      Reviewed-on: https://chromium-review.googlesource.com/973722
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52435}
      f8ae62fe
    • Michael Achenbach's avatar
      Revert "[cleanup] Refactor the Factory" · 503e07c3
      Michael Achenbach authored
      This reverts commit f9a2e24b.
      
      Reason for revert: gc stress failures not all fixed by follow up.
      
      Original change's description:
      > [cleanup] Refactor the Factory
      > 
      > There is no good reason to have the meat of most objects' initialization
      > logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      > this CL changes the protocol between Heap and Factory to be AllocateRaw,
      > and all object initialization work after (possibly retried) successful
      > raw allocation happens in the Factory.
      > 
      > This saves about 20KB of binary size on x64.
      > 
      > Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      > Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      > Reviewed-on: https://chromium-review.googlesource.com/959533
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Hannes Payer <hpayer@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#52416}
      
      TBR=jkummerow@chromium.org,yangguo@chromium.org,mstarzinger@chromium.org,hpayer@chromium.org
      
      Change-Id: Idbbc53478742f3e9525eee83342afc6aedae122f
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/999414Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52420}
      503e07c3
    • Jakob Kummerow's avatar
      [cleanup] Refactor the Factory · f9a2e24b
      Jakob Kummerow authored
      There is no good reason to have the meat of most objects' initialization
      logic in heap.cc, all wrapped by the CALL_HEAP_FUNCTION macro. Instead,
      this CL changes the protocol between Heap and Factory to be AllocateRaw,
      and all object initialization work after (possibly retried) successful
      raw allocation happens in the Factory.
      
      This saves about 20KB of binary size on x64.
      
      Cq-Include-Trybots: luci.v8.try:v8_linux_noi18n_rel_ng
      Change-Id: Icbfdc4266d7be8b48d2fe085f03411743dc6a0ca
      Reviewed-on: https://chromium-review.googlesource.com/959533
      Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#52416}
      f9a2e24b
  17. 27 Feb, 2018 1 commit
  18. 16 Feb, 2018 1 commit
  19. 12 Jan, 2018 1 commit
  20. 11 Jan, 2018 3 commits
  21. 09 Jan, 2018 1 commit
  22. 07 Dec, 2017 1 commit
  23. 05 Dec, 2017 1 commit
  24. 04 Dec, 2017 1 commit
    • Michael Lippautz's avatar
      [heap] Untangle iterability from regular sweeping · 2e4b4db0
      Michael Lippautz authored
      Separates restoring iterability from sweeping a page. Since the set
      of pages where iterability needs to be restored is small, it is
      possible to wait and block for the task to finish if necessary.
      
      A follow up change can now remove the fragile logic for delaying
      unmapping of pages since it is guaranteed that no background task
      keeps a reference to a page for restoring iterability.
      
      Bug: chromium:791043
      Change-Id: Ifba45594cc586df3c99e1bbb20a13b44c18dd9a1
      Reviewed-on: https://chromium-review.googlesource.com/796419
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#49826}
      2e4b4db0
  25. 30 Nov, 2017 1 commit
  26. 26 Oct, 2017 1 commit
  27. 16 Oct, 2017 2 commits
  28. 13 Oct, 2017 1 commit
  29. 25 Sep, 2017 1 commit