1. 27 Sep, 2018 1 commit
  2. 26 Sep, 2018 1 commit
  3. 25 Sep, 2018 3 commits
    • Yang Guo's avatar
      Reland "[snapshot] add checksum to startup snapshot" · 8ff37bc7
      Yang Guo authored
      This is a reland of bcb8d49b
      
      TBR=petermarshall@chromium.org
      
      Original change's description:
      > [snapshot] add checksum to startup snapshot
      >
      > We already had checksumming for code cache data. We now extend
      > checksumming to the startup snapshot to catch data corruption early.
      >
      > The performance impact for deserialization is a regression of 1-2%,
      > which should be acceptable.
      >
      > Sample output for the included test with --profile-deserialization:
      >
      > [Verifying snapshot checksum took 0.023 ms]
      > [Deserializing isolate (134348 bytes) took 1.891 ms]
      > [Verifying snapshot checksum took 0.024 ms]
      > [Deserializing isolate (134348 bytes) took 1.654 ms]
      > [Deserializing context #0 (47208 bytes) took 0.331 ms]
      > Deserialization will reserve:
      >     208168 bytes per isolate
      >     123368 bytes per context #0
      > Snapshot blob consists of:
      >     134492 bytes in 6 chunks for startup
      >     115272 bytes for builtins
      >      47152 bytes in 31 chunks for context #0
      > [Verifying snapshot checksum took 0.048 ms]
      > [Verifying snapshot checksum took 0.043 ms]
      >
      > R=peria@chromium.org, petermarshall@chromium.org
      >
      > Bug: chromium:881417
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      > Reviewed-on: https://chromium-review.googlesource.com/1241874
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56217}
      
      Bug: chromium:881417
      Change-Id: I037f378fc2d45c3e0fa670bf538df68cbba5c53c
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1243191Reviewed-by: 's avatarYang Guo <yangguo@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56224}
      8ff37bc7
    • Clemens Hammacher's avatar
      Revert "[snapshot] add checksum to startup snapshot" · 0a04f263
      Clemens Hammacher authored
      This reverts commit bcb8d49b.
      
      Reason for revert: MSan compile error: https://ci.chromium.org/p/v8/builders/luci.v8.ci/V8%20Linux%20-%20arm64%20-%20sim%20-%20MSAN/23025
      
      Original change's description:
      > [snapshot] add checksum to startup snapshot
      > 
      > We already had checksumming for code cache data. We now extend
      > checksumming to the startup snapshot to catch data corruption early.
      > 
      > The performance impact for deserialization is a regression of 1-2%,
      > which should be acceptable.
      > 
      > Sample output for the included test with --profile-deserialization:
      > 
      > [Verifying snapshot checksum took 0.023 ms]
      > [Deserializing isolate (134348 bytes) took 1.891 ms]
      > [Verifying snapshot checksum took 0.024 ms]
      > [Deserializing isolate (134348 bytes) took 1.654 ms]
      > [Deserializing context #0 (47208 bytes) took 0.331 ms]
      > Deserialization will reserve:
      >     208168 bytes per isolate
      >     123368 bytes per context #0
      > Snapshot blob consists of:
      >     134492 bytes in 6 chunks for startup
      >     115272 bytes for builtins
      >      47152 bytes in 31 chunks for context #0
      > [Verifying snapshot checksum took 0.048 ms]
      > [Verifying snapshot checksum took 0.043 ms]
      > 
      > R=​peria@chromium.org, petermarshall@chromium.org
      > 
      > Bug: chromium:881417
      > Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      > Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      > Reviewed-on: https://chromium-review.googlesource.com/1241874
      > Reviewed-by: Peter Marshall <petermarshall@chromium.org>
      > Commit-Queue: Yang Guo <yangguo@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56217}
      
      TBR=peria@chromium.org,yangguo@chromium.org,petermarshall@chromium.org
      
      Change-Id: Iccb82092858ab68a5d6ae9552fa716108eda354b
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:881417
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Reviewed-on: https://chromium-review.googlesource.com/1243190Reviewed-by: 's avatarClemens Hammacher <clemensh@chromium.org>
      Commit-Queue: Clemens Hammacher <clemensh@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56221}
      0a04f263
    • Yang Guo's avatar
      [snapshot] add checksum to startup snapshot · bcb8d49b
      Yang Guo authored
      We already had checksumming for code cache data. We now extend
      checksumming to the startup snapshot to catch data corruption early.
      
      The performance impact for deserialization is a regression of 1-2%,
      which should be acceptable.
      
      Sample output for the included test with --profile-deserialization:
      
      [Verifying snapshot checksum took 0.023 ms]
      [Deserializing isolate (134348 bytes) took 1.891 ms]
      [Verifying snapshot checksum took 0.024 ms]
      [Deserializing isolate (134348 bytes) took 1.654 ms]
      [Deserializing context #0 (47208 bytes) took 0.331 ms]
      Deserialization will reserve:
          208168 bytes per isolate
          123368 bytes per context #0
      Snapshot blob consists of:
          134492 bytes in 6 chunks for startup
          115272 bytes for builtins
           47152 bytes in 31 chunks for context #0
      [Verifying snapshot checksum took 0.048 ms]
      [Verifying snapshot checksum took 0.043 ms]
      
      R=peria@chromium.org, petermarshall@chromium.org
      
      Bug: chromium:881417
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: Ibc57520d459c86be8972f731aa35045b5e3751d7
      Reviewed-on: https://chromium-review.googlesource.com/1241874Reviewed-by: 's avatarPeter Marshall <petermarshall@chromium.org>
      Commit-Queue: Yang Guo <yangguo@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56217}
      bcb8d49b
  4. 24 Sep, 2018 3 commits
  5. 21 Sep, 2018 2 commits
  6. 20 Sep, 2018 3 commits
    • Igor Sheludko's avatar
      [cleanup] Move enum Heap::RootListIndex to enum class RootIndex · 2fde5433
      Igor Sheludko authored
      and introduce RootsTable - a V8 heap roots storage.
      
      So, the renaming part looks like this:
        Heap::RootListIndex -> RootIndex
        Heap::kBlahBlahRootIndex -> RootIndex::kBlahBlah
      
      Bug: v8:8015, v8:8182
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: I38e1f3e3f6813ef35e37b0bed35e9ae14a62134f
      Reviewed-on: https://chromium-review.googlesource.com/1234613Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarTobias Tebbi <tebbi@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Igor Sheludko <ishell@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56067}
      2fde5433
    • Dan Elphick's avatar
      [interpreter] Always put bytecode handlers in builtins table · daa296b5
      Dan Elphick authored
      This always creates the bytecode handlers as part of the builtins table
      regardless of the V8_EMBEDDED_BYTECODE_HANDLERS definition.
      
      Lazy deserialization of bytecode handlers is enabled for this flow by
      moving the three lazy bytecode deserializers from the strong roots into
      the builtins table (ensuring that they not marked lazy themselves).
      
      To simplify lazy deserialization, the illegal bytecode handler is made
      non-lazy so that GetAndMaybeDeserializeBytecodeHandler doesn't to know
      about it.
      
      Since the bytecode handlers are now always part of the builtins table,
      many bytecode specific methods are removed, including logging and in
      BuiltinsSerializer and BuiltinsDeserializer.
      
      Removes setup-interpreter.h, setup-interpreter-internal.cc and
      builtin-snapshot-utils.*.
      
      Change-Id: Ie421aa897a04f7b3bcb964c476eb7ab149388d53
      Reviewed-on: https://chromium-review.googlesource.com/1220046Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56063}
      daa296b5
    • Michael Achenbach's avatar
      Revert "[es2015] Introduce JSDataView::external_pointer." · ec216398
      Michael Achenbach authored
      This reverts commit 46573e51.
      
      Reason for revert: Speculative revert for breaking chromium integration.
      
      Might break gpu tests and linux debug:
      https://ci.chromium.org/p/v8/builders/luci.v8.ci/Mac%20V8%20FYI%20Release%20(Intel)/2554
      
      Also blocks the roll:
      https://chromium-review.googlesource.com/c/chromium/src/+/1234328
      
      Original change's description:
      > [es2015] Introduce JSDataView::external_pointer.
      > 
      > This adds a new external_pointer field to every JSDataView instance
      > which points directly into the backing store at the given view's
      > byte_offset. This was the DataView performance is now almost on
      > par with the TypedArray performance for accessing aligned memory
      > (with appropriate endianess). This also serves as prepatory work
      > to enable full 64-bit addressing of DataView backing stores in
      > optimized code (soonish).
      > 
      > This change optimizes the bounds checking sequence in TurboFan in
      > such a way that it further improves the DataView set/get performance
      > by around 10%, almost closing the remaining gap between DataViews
      > and TypedArrays.
      > 
      > Drive-by-fix: Get rid of the code duplication around DataView inlining
      > in the JSCallReducer and have only a single bottleneck method now.
      > 
      > Bug: chromium:225811, v8:4153, v8:7881, v8:8171
      > Change-Id: I9118efd4d19e93f0e51c931a9bec1a56a0f4593e
      > Reviewed-on: https://chromium-review.googlesource.com/1231994
      > Commit-Queue: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Benedikt Meurer <bmeurer@chromium.org>
      > Reviewed-by: Tobias Tebbi <tebbi@chromium.org>
      > Reviewed-by: Yang Guo <yangguo@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#56042}
      
      TBR=yangguo@chromium.org,mlippautz@chromium.org,tebbi@chromium.org,bmeurer@chromium.org
      
      Change-Id: I614a90043b1574b19936c37987db94806cac3bd7
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: chromium:225811, v8:4153, v8:7881, v8:8171
      Reviewed-on: https://chromium-review.googlesource.com/1234417Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Achenbach <machenbach@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#56059}
      ec216398
  7. 19 Sep, 2018 3 commits
  8. 18 Sep, 2018 2 commits
  9. 17 Sep, 2018 1 commit
  10. 14 Sep, 2018 3 commits
  11. 13 Sep, 2018 1 commit
  12. 10 Sep, 2018 1 commit
    • Dan Elphick's avatar
      [embedded handlers] Store the handlers without gaps · 5a9f0556
      Dan Elphick authored
      Previously the builtins table had a value for every single
      OperandScale/Bytecode combination regardless of whether it was valid.
      This change makes it so that only valid bytecode handlers are stored in
      the builtins table. This prevents placeholders being serialized into the
      snapshot (and embedded into the binary) saving 9KB in
      CODE_SPACE/OLD_SPACE and 2.5KB in the embedded data as well as 66
      entries in the builtins table.
      
      To do this, it generates a new header file bytecodes-builtins-list.h
      which is created from the BYTECODE_LIST and OPERAND_SCALE_LIST macros.
      Since list macros cannot be used to conditionally generate elements in
      the C-preprocessor, this is done by generator executable, compiled from
      interpreter/generate-flat-headers.cc.
      
      Additionally the generator creates the flat bytecode list so that it is
      transposed from the previous result, i.e. the results are grouped by
      bytecode and then operand scale rather than operand scale then bytecode.
      This should give better locality for commonly used bytecodes and may
      allow less commonly used ExtraWide bytecodes to never be mapped into
      memory at all.
      
      The cost to storing the handlers densely is that looking up a handler
      now requires a binary search through the builtins table, but this should
      only happen during debugging. It is also fixable at least for non-wide
      handlers and could be improved for wide ones if the need arises.
      
      Bug: v8:8068
      Cq-Include-Trybots: luci.chromium.try:linux_chromium_rel_ng
      Change-Id: Iaad22a952e2858f508030c5ddc082f91bf59f667
      Reviewed-on: https://chromium-review.googlesource.com/1209304
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55757}
      5a9f0556
  13. 07 Sep, 2018 1 commit
  14. 05 Sep, 2018 1 commit
  15. 03 Sep, 2018 2 commits
  16. 30 Aug, 2018 1 commit
  17. 27 Aug, 2018 1 commit
  18. 22 Aug, 2018 2 commits
  19. 21 Aug, 2018 2 commits
    • jgruber's avatar
      [builtins] Mark initial builtins on ia32 isolate-independent · 6ab19087
      jgruber authored
      This populates the isolate-independent builtin whitelist with initial
      builtins that do not access any isolate-dependent data and thus don't
      need the root register at all.
      
      Unlike most other platforms, we can't use a scratch register in the
      off-heap trampoline since there's no free register available. The
      trampolines on ia32 are thus implemented as pc-relative jumps
      (thankfully we can address the entire address space).
      
      Drive-by: Made Code::IsIsolateIndependent consistent with
      FinalizeEmbeddedCodeTargets. Code targets are only allowed on some
      platforms.
      
      Bug: v8:6666
      Change-Id: I0bf02eecba8a099afa7b7c892188cd377cbda840
      Reviewed-on: https://chromium-review.googlesource.com/1183224Reviewed-by: 's avatarMichael Starzinger <mstarzinger@chromium.org>
      Reviewed-by: 's avatarSigurd Schneider <sigurds@chromium.org>
      Commit-Queue: Jakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55265}
      6ab19087
    • Dan Elphick's avatar
      Reland "[builtins] Start adding byte code handlers to builtins" · fe5e07d7
      Dan Elphick authored
      This is a reland of 041ae1f8
      
      The clashing method has been fixed.
      
      Original change's description:
      > [builtins] Start adding byte code handlers to builtins
      >
      > Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds
      > the bytecode handlers to the BUILTIN_LIST macros.
      >
      > Currently it's not connected up to the code-generation so it actually
      > does nothing except expand the builtins table.
      >
      > Bug: v8:8068
      > Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091
      > Reviewed-on: https://chromium-review.googlesource.com/1179887
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55215}
      
      Bug: v8:8068
      Change-Id: Ibc98929a9ad464e9d4c9fc7d43401f0fb0df9a00
      Reviewed-on: https://chromium-review.googlesource.com/1181981Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55244}
      fe5e07d7
  20. 20 Aug, 2018 3 commits
    • Dan Elphick's avatar
      Revert "[builtins] Start adding byte code handlers to builtins" · 737ffec5
      Dan Elphick authored
      This reverts commit 041ae1f8.
      
      Reason for revert: Causes jumbo builds to fail because of duplicate GenerateBytecodeHandler definitions.
      
      Original change's description:
      > [builtins] Start adding byte code handlers to builtins
      > 
      > Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds
      > the bytecode handlers to the BUILTIN_LIST macros.
      > 
      > Currently it's not connected up to the code-generation so it actually
      > does nothing except expand the builtins table.
      > 
      > Bug: v8:8068
      > Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091
      > Reviewed-on: https://chromium-review.googlesource.com/1179887
      > Commit-Queue: Dan Elphick <delphick@chromium.org>
      > Reviewed-by: Ross McIlroy <rmcilroy@chromium.org>
      > Reviewed-by: Jakob Gruber <jgruber@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#55215}
      
      TBR=rmcilroy@chromium.org,jgruber@chromium.org,delphick@chromium.org
      
      Change-Id: I860b3ecf543944fd0f4fdcb8de09d21a4b784150
      No-Presubmit: true
      No-Tree-Checks: true
      No-Try: true
      Bug: v8:8068
      Reviewed-on: https://chromium-review.googlesource.com/1181301Reviewed-by: 's avatarDan Elphick <delphick@chromium.org>
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55225}
      737ffec5
    • Dan Elphick's avatar
      [cleanup] Remove dead code in StartupSerializer · 7b3676da
      Dan Elphick authored
      Now that we don't iterate over the strong roots in the StartupSerializer
      twice, remove code related to skipping non-immortal immovable roots.
      Factor out code from Serializer::VisitRootPointers and use that method in
      the StartSerializer override.
      
      Also update comments that reflected the old way of serializing.
      
      Change-Id: Ieb5e63389f455b963244717cada7e5ccde8e41cb
      Reviewed-on: https://chromium-review.googlesource.com/1179669
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55218}
      7b3676da
    • Dan Elphick's avatar
      [builtins] Start adding byte code handlers to builtins · 041ae1f8
      Dan Elphick authored
      Adds a new build flag, v8_enable_embedded_bytecode_handlers, that adds
      the bytecode handlers to the BUILTIN_LIST macros.
      
      Currently it's not connected up to the code-generation so it actually
      does nothing except expand the builtins table.
      
      Bug: v8:8068
      Change-Id: Iaecc3982cf22d04e6c46169b86c9d694952fd091
      Reviewed-on: https://chromium-review.googlesource.com/1179887
      Commit-Queue: Dan Elphick <delphick@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#55215}
      041ae1f8
  21. 17 Aug, 2018 3 commits