1. 25 Aug, 2020 1 commit
  2. 14 Aug, 2020 1 commit
    • Leszek Swirski's avatar
      [offthread] Change OffThreadIsolate to LocalIsolate · f1589bbe
      Leszek Swirski authored
      This patch introduces a new LocalIsolate and LocalFactory, which use
      LocalHeap and replace OffThreadIsolate and OffThreadFactory. This allows
      us to remove those classes, as well as the related OffThreadSpace,
      OffThreadLargeObjectSpace, OffThreadHeap, and OffThreadTransferHandle.
      OffThreadLogger becomes LocalLogger.
      
      LocalHeap behaves more like Heap than OffThreadHeap did, so this allows
      us to additionally remove the concept of "Finish" and "Publish" that the
      OffThreadIsolate had, and allows us to internalize strings directly with
      the newly-concurrent string table (where the implementation can now move
      to FactoryBase).
      
      This patch also removes the off-thread support from the deserializer
      entirely, as well as removing the LocalIsolateWrapper which allowed
      run-time distinction between Isolate and OffThreadIsolate. LocalHeap
      doesn't support the reservation model used by the deserializer, and we
      will likely move the deserializer to use LocalIsolate unconditionally
      once we figure out the details of how to do this.
      
      Bug: chromium:1011762
      
      Change-Id: I1a1a0a72952b19a8a4c167c11a863c153a1252fc
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2315990
      Commit-Queue: Andreas Haas <ahaas@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarAndreas Haas <ahaas@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69397}
      f1589bbe
  3. 12 Aug, 2020 1 commit
    • Santiago Aboy Solanes's avatar
      [compiler] Have one unique PersistentHandles container · 64828a54
      Santiago Aboy Solanes authored
      The (now unique)PersistentHandles container follows this path:
        1) PersistentHandles created via PersistentHandlesScope inside of
           CompilationHandleScope
        2) Owned by OptimizedCompilationInfo
        3) Owned by JSHeapBroker
        4) Owned by the broker's LocalHeap
        5) Back to the broker for a brief moment (after tearing down the
          LocalHeap as part of exiting LocalHeapScope)
        6) Back to OptimizedCompilationInfo when exiting the LocalHeapScope.
      
      There is a special case in GenerateCodeForTesting where the JSHeapBroker
      will not be retired in that same method. In this case, we need to
      re-attach the PersistentHandles container to the JSHeapBroker.
      
      The identity map of the persistent & canonical handles also gets passed
      around like the persistent handles. The only difference is that is
      created in the CanonicalHandleScope (i.e step 1) is different).
      
      Bug: v8:7790
      Change-Id: I2da77a7e08f3fd360a46b606c5fbda08c0af27df
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2332811
      Commit-Queue: Santiago Aboy Solanes <solanes@chromium.org>
      Reviewed-by: 's avatarGeorg Neis <neis@chromium.org>
      Reviewed-by: 's avatarDominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69360}
      64828a54
  4. 06 Aug, 2020 1 commit
  5. 05 Aug, 2020 1 commit
  6. 31 Jul, 2020 4 commits
  7. 30 Jul, 2020 1 commit
    • Dominik Inführ's avatar
      [handles] Add PersistentHandlesScope · 3c6d9aac
      Dominik Inführ authored
      PersistentHandlesScope works similar to the DeferredHandleScope, but
      returns PersistentHandles instead of DeferredHandles on Detach().
      
      Since PersistentHandlesScope takes over filled blocks from the
      main thread local handle, remove the block_size_ field and use
      kHandleBlockSize instead. This way all blocks have exactly the same size.
      
      Bug: v8:10315
      Change-Id: I295cad6f84852f87c55d95572905069443f5698c
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2324254
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#69138}
      3c6d9aac
  8. 29 Jul, 2020 1 commit
  9. 27 Jul, 2020 1 commit
  10. 21 Jul, 2020 1 commit
  11. 14 Jul, 2020 1 commit
  12. 10 Jul, 2020 1 commit
  13. 09 Jul, 2020 1 commit
  14. 08 Jul, 2020 1 commit
  15. 22 Jun, 2020 1 commit
  16. 28 May, 2020 2 commits
    • Ng Zhi An's avatar
      [clang-tidy] Make deleted constructor public · 5a776bc8
      Ng Zhi An authored
      Making them private was a way to hide the constructor, we can
      explicitly delete them, which give a better compilation error message as
      well.
      
      Also see: https://stackoverflow.com/q/55205874
      
      Bug: v8:10488
      Change-Id: I1c037a501c1da39f027c071e5e64d36fd1c95c6d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2219419Reviewed-by: 's avatarJakob Kummerow <jkummerow@chromium.org>
      Commit-Queue: Zhi An Ng <zhin@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68049}
      5a776bc8
    • Leszek Swirski's avatar
      [offthread] Make publish merging and handle fixup atomic · bbc8f787
      Leszek Swirski authored
      Make sure that any GCs required for off-thread heap merging happen
      before any off-thread handle transferring (both transferring using
      OffThreadTransferHandle, and the handles created for the string slot
      fixups). This is to avoid the marker from walking Handle roots that
      point into off-thread pages which the sweeper doesn't see (and can't
      clear mark bits on)
      
      Now, the merging and handle creation is atomic as far as the GC is
      concerned. The merging is done before handle creation to avoid the
      incremental marker from entering off-thread pages, but we ensure that
      the raw objects pointers that point into the off-thread pages (which
      are used for creating the main-thread handles) stay valid until the
      handle creation completes.
      
      Since handle transfer now happens in the middle of publishing, this
      patch also moves the OffThreadTransferHandleStorage ownership over to
      OffThreadHeap. This requires some header juggling to avoid leaking
      OffThreadTransferHandleStorage into the off-thread-isolate header.
      
      Bug: chromium:1086478, chromium:1011762
      Change-Id: Id5e7622d6b5520400a4872c5f6ad396c74b30ca6
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2218058Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Commit-Queue: Toon Verwaest <verwaest@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#68043}
      bbc8f787
  17. 14 May, 2020 1 commit
    • Leszek Swirski's avatar
      [offthread] Add off thread deserialization · 595609fb
      Leszek Swirski authored
      Add a new OffThreadObjectDeserializer, which can deserialize a snapshot
      into an OffThreadIsolate.
      
      This involves templating the Deserializer base class on Isolate, and
      amending OffThreadHeap to be able to create Reservations same as the
      main-thread Heap can. Various off-thread incompatible methods are
      stubbed out as UNREACHABLE in OffThreadIsolate overloads.
      
      There is currently no API entry into the off-thread deserialization, but
      under --stress-background-compile it now runs the CodeDeserializer (i.e.
      code cache deserialization) in a background thread.
      
      Bug: chromium:1075999
      
      Change-Id: I2453f51ae31df4d4b6aa94b0804a9d6d3a03781e
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2172741
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarIgor Sheludko <ishell@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#67799}
      595609fb
  18. 12 May, 2020 1 commit
  19. 05 May, 2020 1 commit
  20. 15 Apr, 2020 1 commit
  21. 06 Apr, 2020 1 commit
  22. 25 Mar, 2020 1 commit
  23. 18 Mar, 2020 1 commit
  24. 10 Mar, 2020 1 commit
  25. 04 Mar, 2020 2 commits
  26. 03 Mar, 2020 2 commits
    • Leszek Swirski's avatar
      [offthread] Allow off-thread bytecode finalization · 455cb6c0
      Leszek Swirski authored
      Add the remaining missing templatizations to allow an initial wiring in
      of the off-thread factory into streaming compilation finalization.
      
      The off-thread finalization is behind a flag, disabled by default:
          --finalize-streaming-on-background
      
      When the flag is enabled, background tasks will perform perform the
      finalization during their background execution, and will release the
      parser and compilation jobs once they are no longer needed.
      
      The implementation is complete enough for performance testing, but not
      enough for launch. Notably, there is no support for:
      
        * Class boilerplates (the code is marked unreachable),
        * Exceptions during finalization, i.e. parse/compile warnings/errors,
        * Allocation sampling,
        * Logging,
        * Asm.js,
        * Parallel complication tasks
        * Forced source positions (for "NeedsDetailedOptimizedCodeLineInfo()")
      
      This patch also adds some tracing events for the various stages of the
      off-thread finalization (including the main-thread merge) for further
      performance improvements.
      
      Bug: chromium:1011762
      Change-Id: Ia44fa56975dd689f0d92c1543b294cdb063eb199
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2066965
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Auto-Submit: Leszek Swirski <leszeks@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarRoss McIlroy <rmcilroy@chromium.org>
      Reviewed-by: 's avatarToon Verwaest <verwaest@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66566}
      455cb6c0
    • Dominik Inführ's avatar
      [heap] Report total size of global handles · 65238018
      Dominik Inführ authored
      Report the total size of global handles in GetHeapStatistics as well.
      This size includes used and free global handles.
      
      Change-Id: I08c0647d993a810a37ae9f332732de9551b5ea8d
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2083020
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#66562}
      65238018
  27. 02 Mar, 2020 1 commit
  28. 20 Feb, 2020 1 commit
  29. 13 Feb, 2020 1 commit
  30. 12 Feb, 2020 2 commits
  31. 10 Feb, 2020 1 commit
  32. 06 Feb, 2020 2 commits