1. 21 Sep, 2021 1 commit
    • Michael Lippautz's avatar
      Revert "[base] Replace base::Optional with Abseil" · d67f0606
      Michael Lippautz authored
      This reverts commit f2e25f8a.
      
      Reason for revert: Breaks GCC 8.4.0 compilation, see bug.
      
      Original change's description:
      > [base] Replace base::Optional with Abseil
      >
      > Change base::Optional to an alias of absl::optional. Eventually we
      > should remove it entirely.
      >
      > Bug: v8:11006
      > Change-Id: I687d44cc7e7cd0a49a84bcc207231eb6808eef2d
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2476318
      > Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#76913}
      
      Bug: v8:11006, v8:12252
      Change-Id: I8048dee676a36551d15f25a31d1e171dae00d975
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3173672
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Auto-Submit: Michael Lippautz <mlippautz@chromium.org>
      Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
      Cr-Commit-Position: refs/heads/main@{#76976}
      d67f0606
  2. 17 Sep, 2021 1 commit
  3. 02 Mar, 2021 1 commit
  4. 01 Mar, 2021 1 commit
    • Dominik Inführ's avatar
      [heap] Safepointing with an atomic state · 17cba4f0
      Dominik Inführ authored
      To improve performance of parking, keep the thread state in an atomic
      variable instead of protecting it with a mutex.
      
      However the mutex was used e.g. to force Unpark() to block while the
      safepoint operation was still running. Therefore the safepoint algorithm
      has to change as well.
      
      Park() and Unpark() use CAS operation to transition the state.
      Safepoint() uses a relaxed load for checking whether a safepoint was
      requested. Since Safepoint(), Park() and Unpark() all have a slow path,
      there is no need for busy-waiting on the main thread.
      
      We need two more ThreadStates:
      * SafepointRequested: This state is set by GlobalSafepoint to force
          Running threads into the slow path on Safepoint() and Park(). This
          state also replaces the separate atomic<bool> safepoint_requested_
          field we used before.
      * ParkedSafepoint: This state is set by GlobalSafepoint as well to force
          parked threads into the slow path on Unpark().
      
      When stopping all threads, GlobalSafepoint transitions states from
      Running --> SafepointRequested and Parked --> ParkedSafepoint to force
      the slow path for all three methods. After performing the transition
      for each thread we know the exact number of Running threads and wait
      until each of them either reached a safepoint or parked itself.
      
      Design doc: https://docs.google.com/document/d/1p9klWyqT_AScAnK_PdHZTcNhZGzoBiYWPkUciIh2C58/edit?usp=sharing
      
      Bug: chromium:1177144, v8:10315
      Change-Id: I8697da915c7d18e2fb941f1bedf6181226408feb
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2704075Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#73089}
      17cba4f0
  5. 12 Jan, 2021 1 commit
    • Camillo Bruni's avatar
      [tools] Add DisableGCMole scope · d16a2a68
      Camillo Bruni authored
      Make sure gcmole detects issue in DisallowGarbageCollection scopes.
      
      DisallowGarbageCollection is widely used in the codebase to document
      code that doesn't allocate. However, this has the rather unexpected
      side-effect that gcmole is not run when such a scope is active.
      
      This CL changes the default behavior of gcmole to run even with
      DisallowGarbageCollection scopes present. This will give us the best
      results of both worlds, dynamic checks by the fuzzer, and static
      analysis by gcmole.
      
      To allow crazy local raw pointer operations there is a new
      DisableGCMole scope that explicitly disables gcmole.
      
      Change-Id: I0a78fb3b4ceaad35be9bcf7293d917a41f90c91f
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2615419Reviewed-by: 's avatarJakob Gruber <jgruber@chromium.org>
      Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Commit-Queue: Camillo Bruni <cbruni@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#72039}
      d16a2a68
  6. 04 Dec, 2020 1 commit
    • Leszek Swirski's avatar
      [gcmole] Improve performance · 18138f26
      Leszek Swirski authored
      Improve the performance of gcmole by
      
        * Precompiling the regexes in GCSuspectsCollector.Resolve
        * Merging those regexes into a single regex, using '|'
        * Changing multiprocess clang plugin invocation to threaded (running
          the plugin releases the GIL so this can efficiently thread). This
          uses a simple worker pool with a single work queue.
        * Change clang plugin invocation loop to yield after each invocation.
          This pipelines the dump-callees plugin and GCSuspectsCollector
          Parse/Resolve, so that the parse can happen while waiting for other
          callee dumps to finish.
      
      Change-Id: Ib9fca70dbcfd2f9d1aebc8bd11aa1d1f7d34e24a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2562242Reviewed-by: 's avatarMaya Lekova <mslekova@chromium.org>
      Reviewed-by: 's avatarLiviu Rau <liviurau@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71617}
      18138f26
  7. 26 Nov, 2020 1 commit
  8. 20 Nov, 2020 1 commit
  9. 18 Nov, 2020 1 commit