1. 15 Jun, 2022 1 commit
  2. 31 May, 2022 1 commit
  3. 05 Apr, 2022 1 commit
    • Leszek Swirski's avatar
      [test] Make cctest run one test, with maybe custom platform · 49c507dc
      Leszek Swirski authored
      Remove cctest's ability to run multiple tests (which has long been
      deprecated and mostly broken). We can then make platform & V8
      initialisation be part of running the test's Run method.
      
      In particular, this allows us to inject custom logic into the platform
      initialisation, like setting up a platform wrapper. Add a
      TEST_WITH_PLATFORM which exercises this by registering a platform
      factory on the test, and wrapping the default platform using this
      factory. This allows these tests to guarantee that the lifetime of the
      platform is longer than the lifetime of the isolate.
      
      As a result of this, we can also remove the complexity around draining
      platform state in the TestPlatform (since it will now have a longer
      lifetime than the Isolate using it), and as a drive-by clean up the
      TestPlaform to use a CcTest-global "default platform" instead of trying
      to scope over the "current" platform.
      
      As another drive-by, change the linked-list of CcTests and the linear
      search through it into an std::map of tests.
      
      Change-Id: I610f6312fe042f29f45cc4dfba311e4184bc7759
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3569223Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Leszek Swirski <leszeks@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#79772}
      49c507dc
  4. 23 Mar, 2022 1 commit
  5. 14 Dec, 2021 1 commit
  6. 08 Dec, 2021 2 commits
  7. 14 Jul, 2021 1 commit
  8. 21 Jun, 2021 1 commit
  9. 18 Jun, 2021 1 commit
  10. 09 Apr, 2021 2 commits
  11. 08 Mar, 2021 1 commit
  12. 15 Dec, 2020 1 commit
    • Clemens Backes's avatar
      [wasm] Initialize compile job early · f3682984
      Clemens Backes authored
      Since the compile job can always be reused after creation (even if it
      runs out of work), we do not need the logic to (re-)initialize it. In
      fact, it will always only be initialized once already.
      This allows us to initialize it once during construction of the
      compilation state (or right after the initialization), and then access
      it without locks later.
      
      In addition, this CL
      1) renames "current_compile_job_" to "compile_job_", since there will
         always only be one now;
      2) removes the {ScheduleCompileJobForNewUnits} method, and just does a
         {compile_job_->NotifyConcurrencyIncrease()} instead;
      3) removes the {has_priority_} field and just directly does a
         {compile_job_->UpdatePriority} call.
      
      The streaming test platform needed to be fixed to avoid calling {Join}
      on the job handle, which would invalidate the handle afterwards.
      Instead, we just run all tasks as long as there are any.
      
      R=thibaudm@chromium.org
      CC=etiennep@chromium.org
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
      Change-Id: I7094231e86d5f54cfca5e971b96fd81e994c874a
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2584946
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Reviewed-by: 's avatarThibaud Michaud <thibaudm@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71757}
      f3682984
  13. 10 Dec, 2020 1 commit
  14. 08 Dec, 2020 1 commit
    • Etienne Pierre-doray's avatar
      Reland "Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob."" · fc1d6f35
      Etienne Pierre-doray authored
      This is a reland of 064ee3c8
      
      Issue 1: WasmEngine UAF when CompilationState is destroyed
      asynchronously
      Fix: Include https://chromium-review.googlesource.com/c/v8/v8/+/2565508
      in this CL. Use OperationBarrier to keep WasmEngine alive.
      
      Issue 2: In gin, JobTask lifetime is not extended beyond
      JobHandle, thus making CancelAndDetach unusable.
      This is fixed in chromium here:
      https://chromium-review.googlesource.com/c/chromium/src/+/2566724
      
      Original change's description:
      > Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob."
      >
      > Reason for revert: Data race:
      > https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34121
      >
      > It was assume that MockPlatform runs everything on 1 thread. However,
      > MockPlatform::PostJob previously would schedule the job through
      > TestPlatform, which eventually posts concurrent tasks, thus causing
      > data race.
      > Fix: Manually calling NewDefaultJobHandle and passing the MockPlatform
      > ensures the jobs also run sequentially.
      >
      > Additional change:
      > - CancelAndDetach is now called in ~CompilationStateImpl() to make sure
      > it's called in sequence with ScheduleCompileJobForNewUnits
      >
      > Original CL description:
      > To avoid keeping around a list of job handles, CancelAndDetach() is
      > used in CancelCompilation. Dependency on WasmEngine is handled by a
      > barrier that waits on all jobs to finish.
      >
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Cr-Original-Commit-Position: refs/heads/master@{#71074}
      > Change-Id: Ie9556f7f96f6fb9a61ada0e5cbd58d4fb4a0f571
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2559137
      > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#71459}
      
      TBR=ulan@chromium.org
      
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_rel_ng
      Cq-Include-Trybots: luci.v8.try:v8_linux64_tsan_isolates_rel_ng
      Change-Id: I6175092c97fea0d5f63a97af232e2d54cccea535
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2569360
      Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
      Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71662}
      fc1d6f35
  15. 01 Dec, 2020 1 commit
    • Etienne Pierre-Doray's avatar
      Revert "Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob."" · 393782ef
      Etienne Pierre-Doray authored
      This reverts commit 064ee3c8.
      
      Reason for revert: Causing blink_web_tests to fail on builder "WebKit Linux MSAN"
      https://bugs.chromium.org/p/chromium/issues/detail?id=1153968
      
      Original change's description:
      > Reland "[wasm]: Use CancelAndDetach and barrier on BackgroundCompileJob."
      >
      > Reason for revert: Data race:
      > https://ci.chromium.org/p/v8/builders/ci/V8%20Linux64%20TSAN/34121
      >
      > It was assume that MockPlatform runs everything on 1 thread. However,
      > MockPlatform::PostJob previously would schedule the job through
      > TestPlatform, which eventually posts concurrent tasks, thus causing
      > data race.
      > Fix: Manually calling NewDefaultJobHandle and passing the MockPlatform
      > ensures the jobs also run sequentially.
      >
      > Additional change:
      > - CancelAndDetach is now called in ~CompilationStateImpl() to make sure
      > it's called in sequence with ScheduleCompileJobForNewUnits
      >
      > Original CL description:
      > To avoid keeping around a list of job handles, CancelAndDetach() is
      > used in CancelCompilation. Dependency on WasmEngine is handled by a
      > barrier that waits on all jobs to finish.
      >
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2498659
      > Commit-Queue: Jakob Kummerow <jkummerow@chromium.org>
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Reviewed-by: Clemens Backes <clemensb@chromium.org>
      > Reviewed-by: Jakob Kummerow <jkummerow@chromium.org>
      > Cr-Original-Commit-Position: refs/heads/master@{#71074}
      > Change-Id: Ie9556f7f96f6fb9a61ada0e5cbd58d4fb4a0f571
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2559137
      > Commit-Queue: Etienne Pierre-Doray <etiennep@chromium.org>
      > Reviewed-by: Andreas Haas <ahaas@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#71459}
      
      TBR=ulan@chromium.org,jkummerow@chromium.org,ahaas@chromium.org,clemensb@chromium.org,etiennep@chromium.org
      Bug: chromium:1153968, v8:11209, v8:11210, v8:11212
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Change-Id: I2c8406bea81ee7cf6c5726c2fec50fffdce09611
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/2566446Reviewed-by: 's avatarClemens Backes <clemensb@chromium.org>
      Commit-Queue: Clemens Backes <clemensb@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#71519}
      393782ef
  16. 27 Nov, 2020 1 commit
  17. 09 Nov, 2020 1 commit
  18. 30 Oct, 2020 1 commit
  19. 19 Oct, 2020 1 commit
  20. 08 Oct, 2020 1 commit
  21. 06 Oct, 2020 1 commit
  22. 24 Sep, 2020 2 commits
  23. 22 Sep, 2020 2 commits
  24. 20 Aug, 2020 2 commits