1. 12 Jan, 2022 1 commit
    • Dominik Inführ's avatar
      Reland "[heap] Optimize time to reach global safepoint" · 93f28d16
      Dominik Inführ authored
      This is a reland of 86038ecf
      
      Compared to the previous CL this one is adding a TSAN suppression
      for GlobalSafepoint::EnterSafepointScope. local_heaps_mutex_ of client
      isolates may be locked in any order. This would be detected by TSAN as a
      potential race. Add some additional DCHECKs to compensate for that
      missing test coverage.
      
      As a cleanup this CL also removes the unused methods ContainsLocalHeap()
      and ContainsAnyLocalHeap() from LocalHeap.
      
      Original change's description:
      > [heap] Optimize time to reach global safepoint
      >
      > Initial support for global safepoints kept it simple by entering a
      > safepoint for each of them one after another. This means
      > time-to-global-safepoint is the sum of all time-to-safepoint operations.
      > We can improve this slightly by splitting up the safepoint iteration
      > into two operations:
      >
      > 1) Initiate safepoint lock (locks local_heaps_mutex_, arms the barrier
      >    and sets SafepointRequested flag for all client threads)
      > 2) Block until all runnning client threads reach a safepoint
      >
      > We now perform operation 1) for all clients first and only then start
      > with operation 2).
      >
      > Bug: v8:11708
      > Change-Id: Iaafd3c6d70bcf7026f722633e9250b04148b3da6
      > Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3310910
      > Reviewed-by: Michael Lippautz <mlippautz@chromium.org>
      > Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      > Cr-Commit-Position: refs/heads/main@{#78308}
      
      Bug: v8:11708, v8:12492
      Change-Id: I7087ba23c08f2d4edb9b632eef3c218fc76342e7
      Reviewed-on: https://chromium-review.googlesource.com/c/v8/v8/+/3328786Reviewed-by: 's avatarMichael Lippautz <mlippautz@chromium.org>
      Commit-Queue: Dominik Inführ <dinfuehr@chromium.org>
      Cr-Commit-Position: refs/heads/main@{#78583}
      93f28d16
  2. 10 Jul, 2020 1 commit
  3. 19 Feb, 2019 1 commit
  4. 04 Nov, 2018 1 commit
  5. 10 Oct, 2018 1 commit
  6. 31 Aug, 2018 1 commit
  7. 25 Oct, 2017 1 commit
    • Michael Lippautz's avatar
      Revert "[heap] Add TSAN suppression for lock-order inversion in Scavenger" · df70869f
      Michael Lippautz authored
      This reverts commit e26cd874.
      
      Reason for revert: The issue has been fixed. See related bug for description and CLs.
      
      Original change's description:
      > [heap] Add TSAN suppression for lock-order inversion in Scavenger
      > 
      > The Scavenger currently requires taking the lock for OLD->NEW processing
      > and can also take another lock for sweeping a different page.
      > 
      > Since order of pages during scavenge and sweep is unstable this may
      > result in lock order inversion reports on TSAN when long-running
      > programms are only executed on a single thread.
      > 
      > The report is a false positve, hence flag it as suppression until we
      > redesign this particular piece.
      > 
      > No-try: true
      > Bug: v8:6923
      > Change-Id: I82355be1c8d83ea61cc21152aeb10b58b1dc4b86
      > Reviewed-on: https://chromium-review.googlesource.com/716261
      > Reviewed-by: Ulan Degenbaev <ulan@chromium.org>
      > Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      > Cr-Commit-Position: refs/heads/master@{#48504}
      
      # Not skipping CQ checks because original CL landed > 1 day ago.
      
      Bug: v8:6923
      Change-Id: I7711466c6e2175dcab8d64d6a642e458e1cde3f5
      Reviewed-on: https://chromium-review.googlesource.com/738110Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Reviewed-by: 's avatarHannes Payer <hpayer@chromium.org>
      Reviewed-by: 's avatarMichael Achenbach <machenbach@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48913}
      df70869f
  8. 12 Oct, 2017 1 commit
    • Michael Lippautz's avatar
      [heap] Add TSAN suppression for lock-order inversion in Scavenger · e26cd874
      Michael Lippautz authored
      The Scavenger currently requires taking the lock for OLD->NEW processing
      and can also take another lock for sweeping a different page.
      
      Since order of pages during scavenge and sweep is unstable this may
      result in lock order inversion reports on TSAN when long-running
      programms are only executed on a single thread.
      
      The report is a false positve, hence flag it as suppression until we
      redesign this particular piece.
      
      No-try: true
      Bug: v8:6923
      Change-Id: I82355be1c8d83ea61cc21152aeb10b58b1dc4b86
      Reviewed-on: https://chromium-review.googlesource.com/716261Reviewed-by: 's avatarUlan Degenbaev <ulan@chromium.org>
      Commit-Queue: Michael Lippautz <mlippautz@chromium.org>
      Cr-Commit-Position: refs/heads/master@{#48504}
      e26cd874
  9. 27 Jun, 2017 2 commits
  10. 14 Oct, 2016 1 commit
  11. 21 Mar, 2016 1 commit
  12. 16 Mar, 2016 1 commit
  13. 10 Mar, 2016 1 commit
    • machenbach's avatar
      [Coverage] Enable merging coverage data from swarming. · 6e401f20
      machenbach authored
      This adds a function to the sancov_merger that merges the
      output files of one swarming shard in parallel. This will
      be called from the infrastructure when collecting/merging
      swarming results.
      
      The tool will be called subsequently for each shard. On
      the first call, the target dir will be empty and the sancov
      files will just be moved.
      
      BUG=chromium:568949
      LOG=n
      NOTRY=true
      
      Review URL: https://codereview.chromium.org/1782843002
      
      Cr-Commit-Position: refs/heads/master@{#34678}
      6e401f20
  14. 08 Mar, 2016 1 commit
    • machenbach's avatar
      [coverage] Enable sanitizer coverage. · 33ffced5
      machenbach authored
      This adds sanitizer-coverage compilation, test-runner
      features and post processing.
      
      Sanitizer coverage is expected to be used together with
      asan.
      
      During test runner execution, the produced sancov files
      are disambiguated and match the pattern:
      <executable name>.test.<test id>.sancov.
      
      Two additional scripts are added for merging raw sancov
      files and for generating json data containing all
      instrumented lines + all covered lines from merged sancov
      files. Both scripts use multiprocessing for speed.
      
      The json data will later be uploaded to google storage
      for further use, e.g. to show coverage data in rietveld.
      
      Sancov documentation:
      http://clang.llvm.org/docs/SanitizerCoverage.html
      
      BUG=chromium:568949
      LOG=n
      NOTRY=true
      TEST=python -m unittest sancov_formatter_test
      TEST=python -m unittest sancov_merger_test
      
      Review URL: https://codereview.chromium.org/1737263003
      
      Cr-Commit-Position: refs/heads/master@{#34578}
      33ffced5
  15. 09 Oct, 2014 2 commits