1. 04 Mar, 2019 1 commit
  2. 15 Feb, 2019 1 commit
  3. 14 Feb, 2019 1 commit
  4. 29 Jan, 2019 1 commit
  5. 22 Jan, 2019 1 commit
  6. 17 Jan, 2019 1 commit
    • Ulan Degenbaev's avatar
      Reland "[heap] Optimize MemoryChunk::FromAnyPointerAddress" · c0994d3f
      Ulan Degenbaev authored
      This is a reland of fd49c8bb
      
      Original change's description:
      > [heap] Optimize MemoryChunk::FromAnyPointerAddress
      > 
      > Currently this function requires the caller to hold a mutex for the
      > large page chunk hashtable and performs a hashtable lookup.
      > 
      > This patch adds a header sentinel field in each MemoryChunk. The field
      > is then used to distinguish large object slots from ordinary slots.
      > 
      > Bug: chromium:915233
      > Change-Id: I9fbeeb4f07f49573d0a21f9a2cc934370e417d68
      > Reviewed-on: https://chromium-review.googlesource.com/c/1391752
      > Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#58732}
      
      Bug: chromium:915233
      Change-Id: I10d23a928328169a2dc6bab78d2b7d2c5d00ebb6
      Reviewed-on: https://chromium-review.googlesource.com/c/1406672
      Commit-Queue: Ulan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#58876}
      c0994d3f
  7. 15 Jan, 2019 1 commit
  8. 11 Jan, 2019 2 commits
  9. 08 Jan, 2019 1 commit
  10. 26 Dec, 2018 1 commit
  11. 20 Dec, 2018 1 commit
  12. 08 Dec, 2018 1 commit
  13. 29 Nov, 2018 1 commit
  14. 27 Nov, 2018 1 commit
  15. 22 Nov, 2018 1 commit
  16. 15 Nov, 2018 1 commit
  17. 12 Oct, 2018 1 commit
  18. 17 Sep, 2018 1 commit
  19. 15 Sep, 2018 1 commit
  20. 12 Sep, 2018 4 commits
  21. 11 Sep, 2018 2 commits
  22. 10 Sep, 2018 1 commit
  23. 27 Jul, 2018 1 commit
  24. 07 Jun, 2018 1 commit
  25. 22 May, 2018 1 commit
  26. 14 May, 2018 1 commit
  27. 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
  28. 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
  29. 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
  30. 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
  31. 09 Apr, 2018 2 commits
  32. 06 Apr, 2018 3 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